0

我有一个列表框,用户可以在其中添加、删除和更新并保存列表。单击“保存”按钮后,我正在调用 jquery 以在列表框中构建元素数组,然后使用隐藏的 INPUT elememt 进行 POST。但我得到一个空数组 PHP POST。这是jquery

$("#saveCategory").click (function() {
    var items = $("#jqxlistbox").jqxListBox('getItems');
    var length = items.length; 
    var mylist = new Array();
    for (var i = 0; i < length; i++) {
        var row = {};
        row["cname"] = items[i].value;
        row["cvalue"] = items[i].label;
        mylist[i] = row;
    }
    $("#myCatgories").value(mylist);  
});

这是我的 html 表单

<form id="addcategory" method="post" action="index.php">
<div style="float: left">
    <input type="button" value="Add" id="addCategory" style="margin-left: 3px" />
        <input type="button" value="Update" id="updateCategory" style="margin-left: 3px" />
        <input type="button" value="Delete" id="deleteCategory" style="margin-left: 3px" />
        <br />                                            
        <input type="submit" value="Save" id="saveCategory" style="margin-left: 3px" />
    </div>
    <div>
    <input type="hidden" name="myCatgories[]" id="myCatgories" value="">
</div>

有人可以告诉我我在这里做错了什么并指出正确的方向。

谢谢

4

2 回答 2

2

试试下面的代码(你的数组初始化有问题), .value() 不是一个合适的 jQ 方法,它应该是.val()

$("#saveCategory").click (function() {
    var items = $("#jqxlistbox").jqxListBox('getItems');
    var length = items.length; 
    var mylist = [];
    for (var i = 0; i < length; i++) {
        var row = [];
        row["cname"] = items[i].value;
        row["cvalue"] = items[i].label;
        mylist[i] = row;
    }
    $("#myCatgories").val(mylist);  
});

如果这不起作用,我建议使用console.log(mylist)andconsole.log(items)以确保您正在获取数据而不是空字段。

于 2013-03-27T18:15:10.690 回答
0

将您的输入类型从提交更改为按钮并在其点击事件中......使用submit()

试试这个

HTML

<input type="button" value="Save" id="saveCategory" style="margin-left: 3px" />

jQuery

$("#saveCategory").click (function() {
  var items = $("#jqxlistbox").jqxListBox('getItems');
  var length = items.length; 
  var mylist = new Array();
  for (var i = 0; i < length; i++) {
    var row = {};
    row["cname"] = items[i].value;
    row["cvalue"] = items[i].label;
    mylist[i] = row;
  }
  $("#myCatgories").val(mylist);
  $('#addcategory').submit(); //<-- submit you form here
});
于 2013-03-27T18:17:14.000 回答