У меня есть 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-коде и отделить ее от запятой, а затем перебрать значения.
Мало что происходит, я бы разобрался:
Вам не хватает идентификатора 'toField' на элементе ввода toField.
Вы должны использовать implode () для переменной $ id, а не взрывать его.
С другой стороны вы должны вызвать explode () в строке recieverId.
просто эхо ваш массив в a для каждого цикла с некоторыми специальными символами, как | & | , если он многомерный, используйте каждый символ на обеих петлях и эхо его. и, используя некоторую функцию разделителя, измените ее на массив в java-скрипте