我有一个列表框,用户可以在其中添加,删除和更新以及保存列表。单击Save按钮后,我正在调用jquery在列表框中构建元素数组,然后使用隐藏的INPUT元素进行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>
有人可以告诉我这里我做错了什么,并把方向放在正确的位置。
由于
答案 0 :(得分: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)
和console.log(items)
来确保抓取数据而不是空字段。
答案 1 :(得分: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
});