2016-04-06 10 views
1

PHP dosya json_encode verilerini döndürür ve jquery ürününü aşağıdaki gibi görüntülemek mümkündür. Şu anda PHP görüntülerini görüntülemek istiyorum jquery. (Bu tablodan herhangi bir kayıt bulunamadı) koşul başka bir bölüm ise nasıl yapılır? retdata jquery tarafından alınan sonuç iseJSA nesnesine, AJAX'ta aynı anda 2 boyutlu ve tekli dizilere nasıl erişilir?

PHP fonksiyon

if($query->num_rows()){ 
    echo(json_encode($query->result())); 
    //returns 
    //[{"id":"24","content":"maths","email":"[email protected]"}] 
} 
else {    
    $response["error"] = 1; 
    $response["error_msg"] = "NO records found"; 
    echo json_encode($response); 
    //returns 
    //{"error":1,"error_msg":"NO records found"} 
} 

jQuery

$.ajax({ 
    url: ajaxUrl, 
    dataType: "JSON", 
    type: "POST", 
    success: function(retdata) {   
     $.each(retdata, function(i) { 
     $("#main_div").append(retdata[i].email + '<br>'); 
     }); 
    } 
}); 
+0

nesne onları sarın ve sadece bir kez .. – Rayon

cevap

1

kullanımlar Object.prototype.hasOwnProperty() göstermez, eğer, her kayıt için döngü yapmak vardır.

success: function(retdata) { 
     if(retdata.hasOwnProperty("error")){ 
     alert(retdata.error_msg); 
     return; 
     }  

     // else treat it like a normal array 
     $.each(retdata, function(i) { 
     $("#main_div").append(retdata[i].email + '<br>'); 
     }); 
    } 

Ve JavaScript bir dizi anahtar argümanı dizi veya nesne olup olmadığını yüzden herhangi bir hata atmaz 0'dan başlayarak tamsayılar sipariş edilen bir Nesne başka bir şey değildir.

+0

iyi bir açıklama ve çalışma yankı çözüm..Sonraki 'hasOwnProperty' parametresinin 'error' parametresine sahip misiniz? t dizi değeri? –

+1

Evet, ilk ilişkilendirici dizi dizininiz. – void

+1

@GeethWelagedara PHP yanıtınızı kontrol edebilirsiniz. JS yan kodu bana iyi görünüyor – void

1

basitçe typeof koşulu ile kontrol edilebilir

success: function(retdata) { 
     if(typeof retdata.error == "undefined"){ //check error value is undefined [not exist]    
     $.each(retdata, function(i) { 
     $("#main_div").append(retdata[i].email + '<br>'); 
     }); 
     }   
     else{ 
     alert(retdata.error_msg); 
     } 
    } 
0

PHP:

if($query->num_rows()){ 
    echo(json_encode($query->result())); 
}else { 
    header("HTTP/1.0 204 No Content");   
    echo json_encode($response); 
} 

JavaScript:

$.ajax({ 
    url: ajaxUrl, 
    dataType: "JSON", 
    type: "POST", 
    statusCode: { 
     200: function() { 
      // Code when records are found 
     }, 
     201: function() { 
      // Code when records are not found 
     } 
    }, 
}); 
İlgili konular