Javascript更改php

时间:2015-06-29 15:52:26

标签: javascript php forms

我在表格中有一张桌子。该表仅显示带有表单字段的第一行。然后在下一个字段中,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 = "&nbsp;";
}

在结果页面

echo $_POST['qty1'];
echo $_POST['qty2'];

然后我只看到qty1的结果。

2 个答案:

答案 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 = "&nbsp;";

}     }