我在表格中有一张桌子。该表仅显示带有表单字段的第一行。然后在下一个字段中,javascripts执行将另一行插入表中。该字段在第一行被命名为qty1,一旦javascripts执行并添加另一行,字段名称应该变为qty2等。
在我的表单结果页面中,它没有通过qty2输入字段值,只有qty1。我究竟做错了什么。我不是javescript专家。
第一行:
$x = 1;
echo '<tr>';
echo '<td><input type="text" name="qty' . $x . ' id="qty" size="6"/></td>';
echo '<td><input onfocus="grndTot()" type="text" name="grandTot1" id="grandTot1" size="10" readonly/></td>';
echo '</tr>';
然后插入行的功能
function grndTot() {
var table = document.getElementById("myTable");
var row = table.insertRow(2);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = cell1.innerHTML = <?php $x++; echo json_encode("<input type="text" name="qty' . $x . ' id="qty" size="6"/>"); ?>;
cell2.innerHTML = " ";
}
在结果页面
echo $_POST['qty1'];
echo $_POST['qty2'];
然后我只看到qty1的结果。
答案 0 :(得分:0)
您可以将它们编入数组,而不是对字段名称进行编号。然后,对于表格的每一行,您都有一个新的数组索引,例如
第1行:
<input type="text" name="qty[]">
第2行:
<input type="text" name="qty[]">
当PHP获取$_POST
数据时,它将成为一个多维数组。因此,可以像这样访问两个数量字段:
echo $_POST['qty'][0];
echo $_POST['qty'][1];
答案 1 :(得分:0)
将您的javascript方法更改为:
function grndTot(var totalRows) {
var table = document.getElementById("myTable");
var row = table.insertRow(totalRows);
for(var i=0; i < totalRows; i+2){
var cell1 = row.insertCell(i);
var cell2 = row.insertCell(i+1);
var element = document.createElement("input");
element1.type="text";
element1.name= "qty "+i;
cell[i].appendChild(element1);
cell[i+1].innerHTML = " ";
} }