2013-03-27 63 views
0

我有一個列表框,用戶可以在其中添加,刪除和更新並保存列表。一旦點擊了保存按鈕,我正在調用jquery在列表框中構建元素數組,然後使用隱藏的INPUT元素進行POST。但是我得到一個空的數組PHP POST。這裏是jQuery的使用隱藏的輸入元素髮布到php腳本的動態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> 

有人可以告訴我什麼,我做錯了什麼,並把在正確的方向。

感謝

回答

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)以確保您抓取的是數據而不是空的字段。

+0

我檢查並獲取數據。問題是$(「#myCatgories」)。value(mylist);它給這個錯誤.Value不是函數 – Aamer 2013-03-27 19:42:44

+0

TypeError:$(...)。value不是函數 $(「#myCatgories」)。value(mylist); 這是控制檯上的完整錯誤消息。 – Aamer 2013-03-27 19:58:25

+0

我將其更改爲$('#myCatgories')。value = mylist; 錯誤消失了,但仍然是POST中的空數組。任何評論 – Aamer 2013-03-27 20:26:37

0

變化從提交按鈕,並在其click事件的輸入型......通過使用submit()

SUMIT形式試試這個

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 
}); 
+0

我不知道爲什麼你需要將它從'submit'更改爲'button'。onclick JS會首先執行,不管輸入類型如何,如果你不想因錯誤提交表單,你總是可以'返回false;'。我在這裏丟失了什麼? – Moses 2013-03-27 18:31:48

+0

我改變了在POST中獲得一個空數組也必須將第二行最後一行更改爲 $('#myCatgories')。value = mylist; 以擺脫錯誤 – Aamer 2013-03-27 20:27:55