Nasıl ajax ile php bir dizi gönderebilir?

6 Cevap php

Ben çoklu seçim seçilen değerler ile javascript yapılmış bir dizi göndermek istiyorum. Ajax kullanarak bir php script bu dizi göndermek için bir yolu var mı?

6 Cevap

XML veya JSON ile sunucuya geri gönderebilir. Sizin javascript XML durumunda javascript onu oluşturmak için gerektirecektir yazı, inşa etmek olacak. JSON javascript yapmak için lighterweight ama kolay değil sadece. JSON-PHP JSON ayrıştırmak için check out.

Sen Creating JSON Data in PHP bakmak isteyebilirsiniz

. (Örneğin) jQuery $ post yöntemi ile bunu olabilir:

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

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

Php adı myphpvariable olacak ve myJavascriptArray değerleri içerecek bir dizi alırsınız.

O mi?

PHP http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz gibi görünen bir sorgu dizesi görürse IIRC, otomatik denilen bir dizi $var bu foo, bar ve Baz içerir yapacaktır. Ben bile sorgu dizesi köşeli parantez içinde dizi dizini belirleyebilirsiniz ve bu endekste değer sopa düşünüyorum. Sen ... Bu özellik kullanıldığında olağan yolu "var []", yani sadece tarayıcının normalde orada ne yaparsa yapsın mutlaka adla bir HTML giriş alanını oluştururken olan parantez kodlamak URL gerekebilir. Istek ile dizi değişkenleri üzerinde PHP belgelerinde bir bölüm var.

Sen Serialize (jQuery sürümü) veri için bir yol arıyor olabilir.

jQuery 1.4 dizileri göndermek için PHP sözdizimi kullanmak güncellendi. Sen kullanarak eski tarz içine geçiş yapabilirsiniz:

burada synatax olduğu:

jQuery.ajaxSetting.traditional = true;

burada örnek

$.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

You can create an array and send it, as Meador recommended: (following code is Mootooled, but similar in other libraries / plain old JS)

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

Yani $ _POST üzerinden ulaşılabilir arrayItems adında bir dizi, php göndermek ['arrayItems'] olacaktır

echo $_POST['arrayItems'] ;

dizi => {[0] => 'ilk şey', [1] => ikinci şey}: gibi bir şey yankılanacak