2015-06-08 2 views
1

Я пытаюсь извлечь объект из json. Но я получаю TypeError: recent_prod[a] is undefined. Я уже делал это много раз без ошибок. Но на этот раз я не могу добраться туда, где я ошибаюсь. Спасибо.TypeError: значение undefined jquery

$(document).ready(function(){ 
    var recents = ""; 
    var imges = ""; 
    var imge = ""; 
    var recent_prod = <?php echo $recent_prod; ?>; 
    for(var a = 0; a < 8; a++) 
    { 
     imges = recent_prod[a].image;   //typeError. 
     alert(imges); 
     imge = imges.split[","]; 
     recents += '<a href="' + base_url + 'init/product/' + recent_prod[a].id + '">'+ 
       '<div class="related_prod_thumb">' + 
        '<div class="related_prod_img">'+ 
         '<span class="helper"></span>'+ 
         '<img src="' + base_url + 'uploads/thumbnail/' + imge + '" width="100">'+ 
        '</div><div class="related_prod_title">' + recent_prod[a].title +'</div>'+ 
        '<div class="related_prod_price">' + 'Rs. ' + recent_prod[a].price + '</div></div></a>'; 
    } 
    $("#recent_views").html(recents); 
}); 
+0

ли вы проверить код, отправляется в браузере при просмотре исходного кода страницы в браузере? Похоже, что значение, предоставленное PHP в '$ recent_prod', не соответствует ожиданиям. Обычно это 'json_encode()' значение из PHP, которое вы отправляете на JavaScript. –

ответ

0

Проверьте исходный код страницы и посмотреть, если эта строка:

var recent_prod = <?php echo $recent_prod; ?>; 

фактически печать $recent_prod правильно, и если да, то увидеть, если это массив. Кроме того, эта линия:

for(var a = 0; a < 8; a++) 
{ 
    imges = recent_prod[a].image; 

пытается прочитать recent_prod без проверки, если он имеет содержание. Заменить 8 на recent_prod.length. То есть, если recent_prod также является массивом.

+0

'recent_prod.length'. Это сработало для меня. Его глупая ошибка, что у JSON было только 6 длины. Но я перебирался до 8. Таким образом, я получил ошибку. Спасибо. Я хотел на самом деле получить только часть JSON. – user254153

0

Чтобы обеспечить только законные значения, смените

for(var a = 0; a < 8; a++) 

в

for(var a in recent_prod) 
Смежные вопросы