我在jquery中有一个代码,可以在按钮点击时动态添加和删除文本框。我想在同一页面上发布动态创建文本的值。
代码在这里:
<div id="itemRows">
Item quantity: <input type="text" name="add_qty" size="4" />
Item name: <input type="text" name="add_name" />
Item Price: <input type="text" name="add_price" />
Total: <input type="text" name="total" />
<input onclick="addRow(this.form);" type="button" value="Add row" />
</div>
<script type="text/javascript">
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var row = '<p id="rowNum'+rowNum+'">Item quantity: <input type="text" name="qty[]" size="4" value="'+frm.add_qty.value+'"> Item name: <input type="text" name="name[]" value="'+frm.add_name.value+'"> Item Price: <input type="text" name="price[]" value="'+frm.add_price.value+'">Total: <input type="text" name="total[]" value="'+frm.total.value+'"> <input type="button" value="Remove" onclick="removeRow('+rowNum+');"></p>';
jQuery('#itemRows').append(row);
frm.add_qty.value = '';
frm.add_name.value = '';
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
</script>
答案 0 :(得分:0)
您已经为每个字段设置了正确的名称,例如qty[]
,name[]
等。
所以当这些值发布到某个页面时,它们中的每一个都将出现在数组中。例如,您有3个框,其值为name
和qty
,并且已发送。这就是它们的出现方式:
[name] => Array
(
[0] => name1
[1] => name2
[2] => name3
[3] => name4
)
[qty] => Array
(
[0] => qty1
[1] => qty2
[2] => qty3
[3] => qty4
)
因此,name[0]
也会qty[0]
,因为它们处于相同的索引顺序中。现在假设您要将它们保存在数据库中,这就是您可以这样做的方法:
$data=array();
foreach($_POST['name'] as $key=>$val){ //$key is index, and $val is value posted
$data[] = array(
'name' => $_POST['name'][$key] //it will add name of that index to this array...
,'qty' => $_POST['qty'][$key] //it will add qty of that index to this array...
//and rest of yoru posted data too, like price etc etc...
);
}
现在您拥有一系列信息,您可以按照有组织的形式获取所有数据。如果你不确定print_r($data)
它做了什么,你会看到它为你做了什么。
echo "<pre>";
print_r($data);
echo "<pre>";
我相信,现在您可以轻松使用此$data
数组。