2008-11-18 2 views

ответ

18

Вы можете отправить сообщение на свой сервер с помощью XML или JSON. Ваш javascript должен будет создать сообщение, которое в случае XML потребует от вас создать его в javascript. JSON не только легче, но и проще в javascript. Отъезд JSON-PHP для разбора JSON.

Вы можете взглянуть на Creating JSON Data in PHP

+1

Я нашел это как лучший ответ, потому что он не прилипает к любой инфраструктуре javascript, в частности. – Lucia 2008-11-18 19:00:35

+0

даже не должен быть XML или JSON, вы можете опубликовать CSV-строку или что-нибудь. – annakata 2009-01-08 12:22:13

+1

. Хьютированная библиотека JSON-PHP fuzzymonk устарела, и более быстрая реализация уже находится в PHP. См. Руководство по функциям json_encode и json_decode. – 2009-01-08 12:37:02

3

IIRC, если PHP видит строку запроса, которая выглядит как http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz, она автоматически сделает массив с именем $var, который содержит foo, bar и baz. Я думаю, вы даже можете указать индекс массива в квадратных скобках строки запроса, и он будет придерживаться значения в этом индексе. Вам может понадобиться URL-кодирование скобок ... Обычный способ использования этой функции заключается в создании поля ввода HTML с именем «var []», поэтому просто делайте то, что обычно делает браузер. В документации по переменным массива через запрос содержится раздел.

0

Вы можете создать массив и отправить его, как это было рекомендовано Meador: (следующий код Mootooled, но похоже в других библиотеках/старый добрый JS)

myArray.each(function(item, index) myObject.set('arrayItems['+index+']', item); 
myAjax.send(myObject.toQueryString()); 

Это будет отправить PHP массив с именем arrayItems , которые могут быть доступны через $ _POST [ 'arrayItems']

echo $_POST['arrayItems'] ; 

отзовется что-то вроде: массив => {[0] => 'первая вещь', [1] => вторая вещь}

26

Вы можете сделать метод JQuery (к примеру), что с $ .post:

var myJavascriptArray = new Array('jj', 'kk', 'oo'); 

$.post('urltocallinajax', {'myphpvariable[]': myJavascriptArray }, function(data){ 
    // do something with received data! 
}); 

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

Это что?

1

jQuery 1.4 был обновлен, чтобы использовать синтаксис PHP для отправки массивов. Вы можете переключить его в старом стиле с помощью:

вот synatax:

jQuery.ajaxSetting.traditional = true; 

вот пример

$.ajax({  
traditional: true, 
type: "post", 
url: myURL, 
dataType: "text", 
data: dataToSend, //this will be an array eg. 
success: function(request) { 
    $('#results').html(request); 
} // End success 
}); // End ajax method 
Смежные вопросы