如何获得动态添加文本框的价值?

时间:2013-11-16 18:06:12

标签: php jquery html textbox

我在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>

1 个答案:

答案 0 :(得分:0)

您已经为每个字段设置了正确的名称,例如qty[]name[]等。 所以当这些值发布到某个页面时,它们中的每一个都将出现在数组中。例如,您有3个框,其值为nameqty,并且已发送。这就是它们的出现方式:

[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数组。

相关问题