我很讨厌这段代码。有人可以解释问题出在哪里吗?
我有这个HTML表单:
raise_exception=True
这个简单的代码用于检查是否一切正常,因为我是这个新手:
<form action="item_add.php" method="POST" id="formadd">
SKU: <input type="text" name="sku" id="form2"><br/>
Name: <input type="text" name="name" id="form2"><br/>
Price: <input type="text" name="price" id="form2"><br/>
Type: <select name="type" id="form2">
<option value="1">DVD-Disc</option>
<option value="2">Book</option>
<option value="3">Furniture</option>
</select>
</form>
问题是它输出了我:
sku:名称
名称:名称
价格:2
类型:2
在插入sku和价格时,会有所不同。
答案 0 :(得分:1)
因为您没有粘贴整个代码,所以这只是假设
echo "sku: ".$item->$sku."<br/>";
echo "name: ".$item->$name."<br/>";
echo "price: ".$item->$price."<br/>";
echo "type: ".$item->$type."<br/>";
您执行了变量的动态名称,因此$ name可以与$ sku相同,而$ price可以与$ type相同
我不知道您的c_item,但可能您想做的是在此类中声明
class c_item
{
public $name;
public $price,
public $sku;
public $type;
}
,然后在您的代码中,需要使用$
通过动态方式对属性进行常规访问 $item = new c_item;
$item->sku = mysqli_real_escape_string($link, $_POST['sku']);
$item->name = mysqli_real_escape_string($link, $_POST['name']);
$item->price = floatval(mysqli_real_escape_string($link, $_POST['price']));
$item->type = intval(mysqli_real_escape_string($link, $_POST['type']));
echo "sku: ".$item->sku."<br/>";
echo "name: ".$item->name."<br/>";
echo "price: ".$item->price."<br/>";
echo "type: ".$item->type."<br/>";
注意对象的属性名称中缺少$