jQuery - php erişin json veri

4 Cevap php

Ben JSON veri erişen bir sorun var. Orada ona bir kolay çözüm muhtemelen ve i bulmak için memnun olurdu ben bir jquery JSON yeniyim.

Benim jQuery:

  $.post(
    "currentPage.php",
    { 
    'currentPage': 1
    },
    function(data){
      $("body").append(data);  
    }
  );

currentPage.php:

$returnArray['left'] = 'test_left';
$returnArray['right'] = 'test_right';

$returnArray['numLeft'][] = 1;
$returnArray['numRight'][] = 2;
$returnArray['numRight'][] = 3;

print json_encode($returnArray);

i tried to access the data like this: data.left data['left']

ama boş döner, nasıl HTML dosyasındaki verilere erişmek için en iyi yolu nedir?

4 Cevap

Ben yanlış olabilir, ama ben post yöntemi json veri dönüş türünü kabul sanmıyorum. Sen ajax fonksiyonunu değiştirerek o ayarlayabilirsiniz:

  $.post(
    "currentPage.php",
    { 
    'currentPage': 1
    },
    function(data){
      $("body").append(data);  
    },
    "json"
  );

Eğer .post() yöntemine parametre olarak almak için bekliyoruz veri türü sağlayın (sizin durumda json):

$.post("currentPage.php",{'currentPage': 1},
  function(data){
    $("body").append(data);  
  },
  'json'     // <-- add the expected datatype
);

Ben varsayılan HTML olarak sonucu tedavi etmek olduğunu düşünüyorum. documentation okuyun.

jQuery.post( url, [ data ], [ success(data, textStatus, XMLHttpRequest) ], [ dataType ] )

Isteği gönderilir hangi URL'yi içeren urlA dize.

Isteği ile sunucuya gönderilir dataA harita veya dize.

Isteği başarılı olursa yürütülür success(data, textStatus, XMLHttpRequest) bir geri çağırma işlevi.

dataType sunucudan beklenen veri türü.

JQuery, size dönüş veri türü (dataType) json olarak ayarlamanız gerekir böylece fonksiyon bekliyoruz ve süreç için ne tür veri bilir. Manuel:

"json": Evaluates the response as JSON and returns a JavaScript object. In jQuery 1.4 the JSON data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown. (See json.org for more information on proper JSON formatting.)

Sen tam $.ajax() çağrısı ile yapabilirsiniz, veya kullanabilirsiniz $.getJSON(). Orada JSON dönmek için hiçbir HTTP POST kısayol (yani $. PostJSON yok), ancak ($.ajax() için dataType parametresini sağlamak ya da sadece {[için parametre ekleyebilirsiniz 4)]}. Bir JSON nesne varsa, json.keyName verilere erişmek için kullanın.

$.ajax({
    url: "currentPage.php",
    data: { 
        'currentPage': 1
    },
    dataType: "json",
    type: "post",
    success: function(data) {
        $("body").append(data);  
    }
});