AJAX kullanarak bir PHP dosyası tarafından döndürülen bir dizideki tüm değerleri nasıl okunur?

4 Cevap php

Ben nasıl AJAX ile veri ile başa çıkabilirim, çok boyutlu bir dizi getirmek için AJAX kullanıyorum, bu yüzden bir çok boyutlu dizi AJAX iade edilir? Ben çok boyutlu dizideki tüm değerleri okumak gerekir. Ben AJAX dizi dönmek için aşağıdaki kodu kullanabilirsiniz.

$resultset=array();
while($row=mysql_fetch_assoc($result))
{
    $resultset[]=$row;
}
print_r($resultset);

AJAX kullanarak bir PHP dosyası tarafından döndürülen bir dizideki tüm değerleri nasıl okunur?

4 Cevap

Bu JavaScript print_r çıkışını ayrıştırmak mümkün olsa da diğer veri formatları için güçlü kütüphaneler zaten iki dilde mevcut olduğunda, bunu yapmak çok saçma olurdu.

Kullan JSON (sayfanın altındaki bağlantıları PHP bunu üreten ve JavaScript okuma için kütüphanelere götürür).

Evet, birden fazla platformda veri aktarmak için JSON (JavaScript Object Notation) kullanabilirsiniz. : Veri gibi görünüyorsa

<?php
  $a = array( );
  $a[ "foo" ] = array( );
  $a[ "bar" ] = array( );
  $a[ "foo" ][ "foo-1" ] = 1;
  $a[ "foo" ][ "foo-2" ] = 2;
  $a[ "foo" ][ "foo-3" ] = 3;
  $a[ "foo" ][ "foo-4" ] = array( "yada", "yada" );
  $a[ "bar" ][ "bar-1" ] = 1;
  $a[ "bar" ][ "bar-2" ] = 2;
  $a[ "bar" ][ "bar-3" ] = 3;
  $a[ "bar" ][ "bar-4" ] = array( "blah", "blah" );
?>

Sonra onun json_encode ($ a) döner:

{"foo":{"foo-1":1,"foo-2":2,"foo-3":3,"foo-4":["yada","yada"]},"bar":{"bar-1":1,"bar-2":2,"bar-3":3,"bar-4":["blah","blah"]}}

Bir nesneye ve sadece bir php dizi yineleme olacak gibi 'döngü içine bu dize dönüştürmek için JavaScript en eval işlevini kullanabilirsiniz.

PHP

echo json_encode($resultset);

JS:

var array = json_decode(input);

javascript json_decode varsayılan tarafından desteklenmiyor, bu işlevi uygulamak için bir çerçeve kullanabilirsiniz. Örneğin: prototip:

var array = input.evalJSON();

Ben şahsen bunun için JSON kullanmak istiyorsunuz. Örneğin php yerine print_r kullanımı json_encode ($ resultset) içinde. Ve javascript kullanımı bazı json-lib destekleyen (jQuery / Mootools yapacak) JSON çözmek için. O kadar.