1

要素の配列を Ajax リクエストに渡す際に問題が発生しています。それはどのように行われるべきですか?

var category = $('select[name="category[]"]').serialize();
$.post(host + '/form/ajax.php', {
    category:category
},
function(data) {
    console.log(data);
});

PHP では、次のように、カテゴリ要素の数を知る必要があります。

 <?php echo count($_POST['category']) ?>
  // should return 3

HTML

<select name="category[]">
   <option value="1">CPU</option>
   <option selected value="2">Hard Drive</option>
</select>

<select name="category[]">
   <option value="1">CPU</option>
   <option selected  value="2">Hard Drive</option>
</select>

<select name="category[]">
   <option selected value="1">CPU</option>
   <option value="2">Hard Drive</option>
</select>
4

3 に答える 3

3

代わりにserializeArrayを使用してください。

var category = $('select[name="category[]"]').serializeArray();
于 2012-10-04T16:05:03.130 に答える
1

最初にserialize()データを実行し、後で{category:category}を実行して、シリアル化されたデータをPOSTパラメーターに割り当てるときに、一種の二重シリアル化を実行しています。代わりに、「カテゴリ」だけを送信する必要があります。

var category = $('select[name="category[]"]').serialize();
$.post(host + '/form/ajax.php',
    category,
    function(data) {
        console.log(data);
});
于 2012-10-04T17:58:00.297 に答える
0

これを試して

$.post(host + '/form/ajax.php', {
    'category[]':category
}
于 2012-10-04T16:04:02.693 に答える