我创建了一个表单,提交了一组输入以在数据库中提交多行。
<form action="addmultiprod.php" id="multiformsub" method="post">
<div id="addmultiprod">
<div class="inputbox"><input name="item_id[]" type="text" class="prodbox" placeholder="Item ID"></input></div>
<div class="inputbox"><input name="item[]" type="text" class="prodbox" placeholder="Product Name"></input></div>
<div class="inputbox"><input name="quant[]" type="text" class="prodbox" placeholder="Quantity"></input></div>
<div class="inputbox"><input name="price[]" type="text" class="prodbox" placeholder="Price"></input></div>
</div>
<div id="addmultiprod2">
<div class="inputbox"><input name="item_id[]" type="text" class="prodbox" placeholder="Item ID"></input></div>
<div class="inputbox"><input name="item[]" type="text" class="prodbox" placeholder="Product Name"></input></div>
<div class="inputbox"><input name="quant[]" type="text" class="prodbox" placeholder="Quantity"></input></div>
<div class="inputbox"><input name="price[]" type="text" class="prodbox" placeholder="Price"></input></div>
</div>
<div id="addmultiprod3">
<div class="inputbox"><input name="item_id[]" type="text" class="prodbox" placeholder="Item ID"></input></div>
<div class="inputbox"><input name="item[]" type="text" class="prodbox" placeholder="Product Name"></input></div>
<div class="inputbox"><input name="quant[]" type="text" class="prodbox" placeholder="Quantity"></input></div>
<div class="inputbox"><input name="price[]" type="text" class="prodbox" placeholder="Price"></input></div>
</div>
</div>
</form>
我的问题是,当值为空时,我将如何验证一组输入的数据,以防止将它们插入数据库。
示例:
当<div id="addmultiprod2">
或至少1中的输入为空时,查询不会将其插入数据库。
以下是我将数据插入数据库的方法。
$sql ="INSERT INTO `$tablechoice`(item_id, item_description, item_quantity, item_price)
VALUES ('$item_id[0]','$item[0]','$quant[0]','$price[0]'),
('$item_id[1]','$item[1]','$quant[1]','$price[1]'),
('$item_id[2]','$item[2]','$quant[2]','$price[2]'),";
$conn2->query($sql);
为了完成上述示例,我必须添加/修改哪些代码?
更新
我还在看另一个场景,如果我要添加一个选项/按钮,用户可以通过jquery添加额外的输入集,我将如何验证它?
非常感谢您对未来的见解和反馈! :)
答案 0 :(得分:1)
在insert
查询之前,您可以检查空值,例如
if(!empty($quant[0])) // similarly for all input arrays
{
// your insert query here
}
答案 1 :(得分:1)
有两种方法可以做到这一点:
方法1:
您可以在MySQL表中将每个字段设置为NOT NULL。这样,如果你试图插入一些空的东西,它就不会插入。
方法2:
在PHP代码中,在插入之前检查为空:
if (!empty($item_id[0]) && !empty(item[0]) && !empty($quant[0]) && !empty($price[0])){
//your database insert code here
}
答案 2 :(得分:1)
</input>
示例代码:
$counter = count($_POST["item_id"]); /* COUNT HOW MANY FIELD HAS BEEN SUBMITTED*/
for($x = 0; $x<= $counter; $x++){ /* RUN IT THROUGH A FOR LOOP */
if(!empty($item_id[$x]) && !empty($item[$x]) && !empty($quant[$x]) && !empty($price[$x])){
/* THIS WILL ONLY EXECUTE IF THE SET IS NOT EMPTY */
$sql ="INSERT INTO `$tablechoice`(item_id, item_description, item_quantity, item_price)
VALUES ('$item_id[$x]','$item[$x]','$quant[$x]','$price[$x]')";
$conn2->query($sql);
} /* END OF CHECKING EACH FIELD */
} /* END OF LOOP */
答案 3 :(得分:0)
如果您想在单击提交按钮之前进行过滤,则可以使用HTML 5属性。现在大多数浏览器都支持HTML 5,如果您只想让输入不为空,我认为这是更好的方法:
使用HTML 5属性 - &gt; “必需的”
Ex: <input type="text" name="username" required>
当点击提交按钮时,如果用户名为空,该代码将显示消息。
我希望这个帮助