美好的一天,每当我提交表格时,是否有人愿意解释此通知。这是我的代码:
<?php
if($_POST['submit']) {
$dbC = new imsFunction();
if ($_POST['item'] == null) {
echo 'No Data';
} else {
foreach ($_POST['item'] as $key => $value) {
$item = $_POST["item"][$key];
$price = $_POST["price"][$key];
$qty = $_POST["qty"][$key];
$sql = $dbC->qryExec('Insert Into tbl_test (item,price,quant) Values (?, ?, ?)', [$item, $price, $qty]);
//$sql = mysql_query("insert into your_table_name values ('','$item', '$price', '$qty')");
}
}
}
}
function addRow(tableID) {
var enteredItem = $("#item").val();
var enteredPrice = $("#price").val();
var enteredQty= $("#qty").val();
if (!enteredItem) {
alert("Please entere item name!");
} else {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
element1.name="chkbox[]";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
cell2.innerHTML = "<input type='text' name='item[]' value='"+enteredItem+"' readonly />";
var cell3 = row.insertCell(2);
cell3.innerHTML = "<input type='text' name='price[]' value='"+enteredPrice+"' readonly />";
var cell4 = row.insertCell(3);
cell4.innerHTML = "<input type='text' name='qty[]' value='"+enteredQty+"' readonly />";
document.getElementById('item').value='';
}
}
&GT;
这是将数据添加到表行的javascript代码。
NOCAPTCHA = True
输入的名称类似于'item []'。我想要做的是在用户提交按钮而不先添加数据时捕获错误。但是会发生什么,它会在foreach循环中发出一条注意未定义的索引:项目。
答案 0 :(得分:0)
在测试传入数据时,总是假设最差。在这种情况下,如果测试$_POST['item']==null
尚未设置,则测试if(isset($_POST['item']) && is_array($_POST['item'])) {
}
可能会失败。
更安全的方法是:
null
测试的第二部分是以防万一。
顺便说一句,如果您专门针对===
值进行测试,则应使用<select name="tickets" multiple>
<option value="__ticket_id__">Ticket #</option>
<option value="__ticket_id__">Ticket #</option>
<option value="__ticket_id__">Ticket #</option>
<option value="__ticket_id__">Ticket #</option>
...
</select>
将其与其他虚假值区分开来。
答案 1 :(得分:0)
输入字段名称
存在一些错误<input type="text" name="ProductNme" id="item" >
<input type="text" name="ProductNme" id="price" >
<input type="text" name="ProductNme" id="qty" >
它们都被命名为:ProductNme
这就是为什么这些行不起作用
$item = $_POST["item"][$key];
$price = $_POST["price"][$key];
$qty = $_POST["qty"][$key];
这些索引(item
,price
,qty
)在发送到服务器的$ _POST数组中不存在。
因此未定义的索引消息。
祝你好运