Передать массив PHP через jQuery Ajax - PullRequest
2 голосов
/ 02 августа 2009

У меня есть массив 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" я мог взять каждый идентификатор из массива, чтобы сделать что-то вроде этого:

    <?php 

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

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

Ответы [ 5 ]

3 голосов
/ 02 августа 2009
<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;
}

Как-то так вариант?

2 голосов
/ 02 августа 2009

Во-первых, вы, вероятно, хотите использовать implode, а не взрываться, чтобы создать переменную $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)

И теперь вы можете использовать эти идентификаторы ...

0 голосов
/ 04 апреля 2011

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

0 голосов
/ 02 августа 2009

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

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

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

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

0 голосов
/ 02 августа 2009

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

http://us3.php.net/split

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...