Передача массива PHP через jQuery Ajax

У меня есть php-массив:

$toField = explode(",", $ids); //Which looks something like '24,25,26,29' 

Я хочу передать этот массив через jQuery AJAX, с этим:

 <form id="myForm"> <input type="hidden" value="'.$toField.'"> <input type="submit" id="sendMessage" class="faceboxSubmit" name="ok" value="Send Reply"/> </form> 

И вот мой jQuery:

 $("#sendMessage").click(function(event){ event.preventDefault(); var senderID = <?php echo $usrID; ?>; var receiverID = $("#toField").val(); $.ajax( { type: "POST", url: "replyMessage.php", data: "senderID=" + senderID + "&subject=" + subject + "&message=" + message + "&receiverID=" + receiverID + "&threadID=" + thread_id, beforeSend: function() { $("#sendingMessage").show(); }, success: function() { alert("Success"); } }); }); 

Как передать массив, так что с помощью страницы «replyMessage.php» я мог бы взять каждый ID из массива, чтобы сделать что-то вроде этого:

  <?php foreach ($_POST['receiverID'] as $receiverID) { mysql_query //etc... } 

Любая помощь очень ценится!

Во-первых, вы, вероятно, хотите использовать implode , а не взрывать, для $toField переменной $toField 😉

 $ids = array(24, 25, 26, 29); $toField = implode(',', $ids); var_dump($toField); 

Который дал бы вам

 string '24,25,26,29' (length=11) 

Затем вы вводите это в форму; что-то вроде этого, вероятно, будет:

 <input type="hidden" value="<?php echo $toField; ?>"> 

(Чеч HTML-код вашей формы, если быть уверен ;-))

Затем на скрипте PHP, который получает данные из формы, когда он был отправлен, вы должны использовать explode для извлечения данных в виде массива из строки:

 foreach (explode(',', $_POST['receiverID']) as $receiverID) { var_dump($receiverID); } 

Который доставит вас:

 string '24' (length=2) string '25' (length=2) string '26' (length=2) string '29' (length=2) 

И теперь вы можете использовать иконы thoses …

 <form id='myform'> <input type='hidden' name='to[]' value='1' /> <input type='hidden' name='to[]' value='2' /> .. etc .. .. rest of you're form .. </form> 

jQuery изменить данные: .. часть:

 data: $('#myform').serialize() 

Тогда у вас PHP:

 foreach ( $_POST [ 'to' ] as $num ) { // do something with $num; } 

Что-то вроде этого вариант?

вы можете получить строку в php-коде и отделить ее от запятой, а затем перебрать значения.

http://us3.php.net/split

Мало что происходит, я бы разобрался:

  • Вам не хватает идентификатора 'toField' на элементе ввода toField.

  • Вы должны использовать implode () для переменной $ id, а не взрывать его.

  • С другой стороны вы должны вызвать explode () в строке recieverId.

просто эхо ваш массив в a для каждого цикла с некоторыми специальными символами, как | & | , если он многомерный, используйте каждый символ на обеих петлях и эхо его. и, используя некоторую функцию разделителя, измените ее на массив в java-скрипте