0

ユーザーがリストを追加、削除、更新、保存できるリスト ボックスがあります。[保存] ボタンをクリックすると、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>

誰かが私がここで間違っていることを教えて、正しい方向に向けてください。

ありがとう

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

これが機能しない場合は、 and を使用して、空のフィールドではなくデータを取得していることを確認することをお勧めしconsole.log(mylist)ますconsole.log(items)

于 2013-03-27T18:15:10.690 に答える
0

入力タイプを送信からボタンに変更し、そのクリックイベントで...を使用してフォームを送信しますsubmit()

これを試して

HTML

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

Jクエリ

$("#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 に答える