JQuery '. Ajax kullanmak için en iyi yolu () işlevi, bir php komut dosyası değişkenlerini almak?

6 Cevap php

-Ben veri alındıktan sonra json) (basit bir yol olmayıp, eval kullanmak için onun bir kötü uygulama okudum okudum. Yani böylece döndürülen verileri kullanmak bilmiyorum.

Ben (çok uygun değil) zaten biçimlendirilmiş sonuçları echo-php komut verileri almak mümkün oldum tek yoludur. Bir yönlendirme php script varsa da bütün yönlendirilen sayfaları html geri javascript iletilir.

Biri php den javascript değişkenleri veya dizileri geri göndermek için bir yol tavsiye misiniz?

6 Cevap

JQuery ile JSON verilerini kullanabilir ve size aynı etki alanından veri yüklemek eğer ben güvenlik açıkları göremiyorum daha önemli, oldukça güvenli.

Yani PHP dedi (sürüm 5.2.0 başlayarak) Eğer JSON ve tersine PHP verileri dönüştürmek için doğal işlevleri var. The function are json_encode and json_decode

Örneğin:

$result = array();
$result['data1'] = "askdjaksd";
$result['data2'] = array(1,2,3);

echo(json_encode($result));

Ve PHP sizin için tüm çalışır. Aynı zamanda oldukça hızlı bir yerel uzantı davranıyor.

JSON önemli ölçüde daha iyi olurdu mevcut diğer serileştirme yöntem olduğunu sanmıyorum. Onunla eval() kullanmak zorunda değiliz. Douglas Crockford dan this one gibi kullanılabilir ayrıştırıcılar vardır.

JavaScript XMLHttpRequest'ler için aynı etki alanı ilkesi beri bir man in the middle krizi ya da sunucu (her iki durumda da sizin ve müşterilerine daha büyük sorunları var) tehlikeye yoksa, eval hakkında endişelenmenize gerek olmamalıdır (bu verileri kontrol beri) 'sunucudan JSON dize ing.

Diğerleri söylediler, mevcut alternatif tercümanlar vardır. Eğer gerçekten istiyorsanız Ayrıca, XML olarak geri veri gönderebilirsiniz.

Başka bir cevap yorum cevaplamak için: Sitenizin ve JavaScript olmadan çalışmak istiyorsanız, ben bunun yerine tüm sitesi üzerinden çevresinde geçen oturumunda bir bayrak saklamak öneririz.

Herkes söz vardır gibi, aynı etki alanı ilke eval sunucudan gönderilen () ing json kötülüklere karşı sizi korumak istiyorsunuz ....

Eğer başka bir yanıt yorumum cevaplama:

JQuery her ajax isteği ile bu başlığı gönderir

HTTP_X_REQUESTED_WITH= "XMLHttpRequest"

Yani PHP senaryo üzerinde gibi bir şey yapabilirsiniz

if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
   ($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest")){
   //do stuff assuming javascript is enabled
}else{
  //do stuff assuming javascript is disabled
}

jQuery

$.post('somewhere.php',{ file: file, text: text },function(data) { //do stuff you can tell it to call a function or w/e you need to do },"json");

Verilere erişmek için bu basit function (data) {Eğer data.var tarafından json encode erişmenizi sağlar}

PHP

$file = $_POST['file'];
$text = $_POST['text'];

// do w/e you want with theses
// when your done and want to pass the vars back

echo json_encode("file" => $file,"text" => $text,"mynewvar" => $somevar);

Eğer bu verilere erişmek istediğinizde Şimdi basit bir örnek fonksiyonu (veri) içinde olacaktır:

function(data) {  
  var mynewvar = data.mynewvar;
  var file = data.file;
  var text = data.text;
  //do w/e
}

O size nasıl hallederim bazı yön verir umuyoruz.