使用jquery post发送数组

时间:2014-07-05 06:52:53

标签: php jquery arrays

我有一个php页面,其中包含一个排列在表格中的输入框数组。每行包含有关基金每个成员的信息。不同的栏目涉及他们在不同的领导下支付的款项。我想用它来更新包含成员的mysql表'账户。如何制作一个数组并使用jquery发送帖子请求?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery-ui-1.10.4.custom/js/jquery-1.10.2.js"></script>
<script type="text/javascript">


jQuery.noConflict();
jQuery.validator.setDefaults({
    submitHandler: function () {

        //create an array of values in each row
        jQuery.post("scripts/update.php", {

            //send array to the script
        }, function (data) {

            alert(data);
        });
    }
});



</script>

</head>

<body>
<form id="form1" name="form1" action="">
<table><tr><th>Mem No.</th><th>Subcription</th><th>Loan</th><th>Interest</th></tr>
<tr><td>
<input type="text" id="memberno1"  value="1001"/></td><td><input type="text" id="sub1" /></td><td><input type="text" id="loan1"/></td><td> <input type="text" id="int1" /></td></tr>

<tr><td>
<input type="text" id="memberno2"value="1002" /></td><td><input type="text" id="sub2" /></td><td><input type="text" id="loan2"/></td><td> <input type="text" id="int2" /></td></tr>
<tr><td>
<input type="text" id="memberno3" value="1003"/></td><td><input type="text" id="sub3" /></td><td><input type="text" id="loan3"/></td><td> <input type="text" id="int3" /></td></tr>
<tr><td>
<input type="text" id="memberno4" value="1004"/></td><td><input type="text" id="sub4" /></td><td><input type="text" id="loan4"/></td><td> <input type="text" id="int4" /></td></tr>
<tr><td>
<input type="text" id="memberno5" value="1005"/></td><td><input type="text" id="sub5" /></td><td><input type="text" id="loan5"/></td><td> <input type="text" id="int5" /></td></tr>
<tr><td>
<input type="text" id="memberno6" value="1006"/></td><td><input type="text" id="sub6" /></td><td><input type="text" id="loan6"/></td><td> <input type="text" id="int6" /></td></tr>
<tr><td>
<input type="text" id="memberno7" value="1007"/></td><td><input type="text" id="sub7" /></td><td><input type="text" id="loan7"/></td><td> <input type="text" id="int7" /></td></tr></table>
<input type="submit" valueue="Save" id="submit"/>
</form>
</html>

4 个答案:

答案 0 :(得分:0)

好吧,遍历所有表行,并迭代所有输入字段:

var arr = $('#form1 tr:gt(0)').map(function() {
    return [$('input', this).map(function() {
        return this.value;
    }).get()];
}).get();

Demo

有一点需要注意,你必须依赖每个领域的顺序。

答案 1 :(得分:0)

您需要创建一个空的array并将每个输入推送到那里,然后将其用于POST。像这样:

jQuery.noConflict();
jQuery.validator.setDefaults({
    submitHandler: function () {

        var inputArray = [];

        $('#form').find('input[type=text]').each(function() {
            // get the value or something from each input

            inputArray.push($(this).val());
        })

        //create an array of values in each row
        jQuery.post("scripts/update.php", {
            'inputs' : inputArray //send array to the script
        }, function (data) {
            alert(data);
        });
    }
});

您应该将inputs作为包含输入文本值的数组。希望有所帮助

答案 2 :(得分:0)

使用jQuery.post(url,data,callback)

通过使用序列化,您可以自动发送整个表单。

   jQuery.post("scripts/update.php", 
              $("form#form1").serialize(), 
              function (data) {
                 alert(data);
              });

答案 3 :(得分:0)

$.ajax({
 url: 'ajax-post-url.php',
 type: 'POST', // or GET method
 dataType: 'json',
 data: $('.form').serialize(), // all data
 success: function(response) {
    console.log(response);
 }
});

$.post('ajax-post-url.php', $('.form').serialize(), function(response) {
 console.log(response);
});