Php 访问对象变量的属性时尝试获取非对象的属性
我有一个页面,其中有一个表单,用户可以在上面添加对象。逐一地。当用户发送表单时,将向当前页面发送帖子,以使用新对象更新Php 访问对象变量的属性时尝试获取非对象的属性,php,object,Php,Object,我有一个页面,其中有一个表单,用户可以在上面添加对象。逐一地。当用户发送表单时,将向当前页面发送帖子,以使用新对象更新$objects。这是代码 <?php include ('header.php'); include ('dbc.php'); include ('object.php'); $objects = array(); if(isset($_POST['flag'])) { $objects = unseri
$objects
。这是代码
<?php
include ('header.php');
include ('dbc.php');
include ('object.php');
$objects = array();
if(isset($_POST['flag']))
{
$objects = unserialize($_POST['objects']);
$name = mysql_fix_string($_POST['name']);
$quantity = mysql_fix_string($_POST['quantity']);
$observation = mysql_fix_string($_POST['observation']);
$object = new Object();
$object->name = $name;
$object->quantity = $quantity;
$object->observation = $observation;
$objects[] = $object;
}
var_dump($objects);
?>
<body>
<div class="leftContainer">
<div class="upperContainer">
<div class="ContainerTitle">
Imagem do produto:
</div>
<div style="height: 200px;" class="upperContainerImageDiv"></div>
</div>
<div class="bottomContainer">
<div class="bottomContainerRequestsDiv">
<un>
<li class="listItem">
<?php
foreach ($object as $product)
{
$counter = 1;
?>
<div class="listItemInnerDiv">
//error here <span class="listItemInnerDivText"><?php echo $counter ." ". $product->name ?></span>
</div>
<?php
$counter + 1;
}
?>
</li>
</un>
</div>
</div>
</div>
<div class="rightContainer">
<form action="" method="POST">
<table style="margin-left: auto; margin-right: auto;">
<thead>
<div class="ContainerTitle">
Adicionar produto:
</div>
</thead>
<tbody>
<tr>
<td><span class="tdTitle">Produto:</span></td>
<td>
<select class="input" name="name" onchange="ImageUpdater(this.value);">
<option>Selecione</option>
<?php
$query = "SELECT g_id, name FROM `group`";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
?><optgroup label="<?php echo $row[1] ?>"><?php
$query = "SELECT name FROM `object` WHERE g_id='$row[0]'";
$secondaryResult = mysql_query($query);
while($secondaryRow = mysql_fetch_array($secondaryResult))
{
?><option><?php echo $secondaryRow[0] ?></option><?php
}
}
?>
</select>
</td>
</tr>
<tr>
<td><span class="tdTitle">Quantidade:</span></td>
<td>
<input class="input" type="number" name="quantity">
</td>
</tr>
<tr>
<td><span class="tdTitle">Observações:</span></td>
<td>
<input class="input" type="text" name="observation">
</td>
</tr>
</tbody>
</table>
<input type="hidden" name="flag" value="1"/>
<input type="hidden" name="objects" value="<?php echo htmlentities(serialize($objects)) ?>"/>
<center><input name="addbutton" type="submit" value="Adicionar"/></center>
</form>
</div>
</body>
</html>
我在这里做错了什么?为什么会发生此错误?您正在将对象数组创建为
$objects
;但您的foreach循环是:
foreach ($object as $product)
您错过了
$objects
末尾的's',您的数组称为$objects
;您的foreach循环是从$object
生成的-我认为后者确实需要在末尾加一个“s”。真不敢相信我没看到。把它贴出来作为答案,我会把它标记为已回答。我想我们都做过类似的事情。很高兴能帮忙。
foreach ($object as $product)