我为每个产品设置了这些隐藏字段。我可以用jquery获得隐藏字段。但是当我输入数据时,它不会进入数据库,总是显示0。我认为这是因为相同的命名值。如何在不更改输入名称的情况下解决此问题!
我也有一个表在我的数据库中所有的产品。
<select id="mySelect" onchange="npup.doSelect(this);" name="catagory" type="text">
<option value="">choice</option>
<option value="curtain_fabrics">Curtain Fabrics</option>
<option value="curtain">Curtains</option>
<option value="curtain_holder">Curtain Holders</option>
</select>
<div id="mySpecialElements">
<div id="npupcurtain_fabrics" class="hidden">
<div class="fe" >Quality: <input type="text" name="quality"> </div>
<div class="fe" >Width:<input type="text" name="width"> </div>
<div class="fe" >Price:<input type="text" name="price"> $/m</div>
</div>
<div id="npupcurtain" class="hidden">
<div class="fe" >Quality<input type="text" name="quality"></div>
<div class="fe" >Width:<input type="text" name="width"> </div>
<div class="fe" >Height:<input type="text" name="height"></div>
<div class="fe" >Price:<input type="text" name="price" >$/set</div>
</div>
<div id="npupcurtain_holder" class="hidden">
<div class="fe" >Material<input type="text" name="material"></div>
<div class="fe" >Moldel:<input type="text" name="model"> </div>
<div class="fe" >Price:<input type="text" name="price" >$/piece</div>
</div>
mysql代码:
$sql = mysql_query("INSERT INTO products (name, catagory, quality, width, height, price, date_add)
VALUES('$product_name','$product_category','$prosuct_quality','$produt_width','$product_height','$product_price', now())");
您可以将它们作为数组发送到服务器:
<div id="npupcurtain_fabrics" class="hidden">
<div class="fe" >Quality: <input type="text" name="fabrics[quality]"> </div>
<div class="fe" >Width:<input type="text" name="fabrics[width]"> </div>
<div class="fe" >Price:<input type="text" name="fabrics[price]"> $/m</div>
</div>
<div id="npupcurtain" class="hidden">
<div class="fe" >Quality<input type="text" name="npupcurtain[quality]"></div>
<div class="fe" >Width:<input type="text" name="npupcurtain[width]"> </div>
<div class="fe" >Height:<input type="text" name="npupcurtain[height]"></div>
<div class="fe" >Price:<input type="text" name="npupcurtain[price]" >$/set</div>
</div>
<div id="npupcurtain_holder" class="hidden">
<div class="fe" >Material<input type="text" name="holder[material]"></div>
<div class="fe" >Moldel:<input type="text" name="holder[model]"> </div>
<div class="fe" >Price:<input type="text" name="holder[price]" >$/piece</div>
</div>
在服务器端…假设PHP
的变量是这样的:
$_POST['fabrics']['quality'];
$_POST['holder']['model'];
....
看到评论后,我认为问题是你的SQL,而不是其他部分。您可能无法正确地执行连接和构建查询。试试下面的代码。(我需要说明的是,不建议这样连接字符串。使用占位符?
来防止SQL注入)。
$sql = mysql_query(
"INSERT INTO products (
name,
catagory,
quality,
width,
height,
price,
date_add)
VALUES(
'".$product_name."'
,'".$product_category."'
,'".$prosuct_quality."'
,'".$produt_width."'
,'".$product_height."'
,'".$product_price."'
, now())");
关于占位符(预处理语句),请参见http://www.php.net/pdo.prepared-statements
这可能是由于数据库中表的列的数据类型错误。例如,您将string
插入到仅接受integers
的数据库表中的列中,因此您获得存储的值0
。
在html中使用id标签和name标签
示例更改
<div class="fe" >Quality: <input type="text" name="quality"> </div>
<div class="fe" >Quality: <input type="text" id="quality"> </div>