не могу получить доступ к JSON - PullRequest
0 голосов
/ 20 апреля 2011

У меня есть запрос Ajax,

$.ajax({
    url    : '<?php echo current_url(); ?>',
    data       : "txtKeywords="+$("#txtKeywords").val()+"&search=Search For Item",
    type       : 'POST',
    dataType   : 'JSON',
    success : function(html)
    {       
        console.log(html);          
    }
});
return false;

В консоли я получаю следующее:

[{"productId":"5","productTitle":"Small Brasserie Dining Table","productPath":"small-brasserie-dining-table\/","productRangeId":"6","productSecondaryRangeId":"0","productTypeId":"2","productRefNo":"0080","productShortDesc":"","productBestSeller":"0","productFeatured":"0","productIsSet":"0","productPrice":"275","productSavingType":"none","productSavingPrice":"0","productSavingMessage":"","productDimWidth":"90","productDimHeight":"74","productDimDepth":"90","productTechnical":"Powder coated aluminium frame with welded joints.","productTemplateId":"5","productMetadataTitle":"","productMetadataKeywords":"","productMetadataDescription":"","productBandingColour":"grey","productActualPrice":"275","rangeTitle":"Dining","parentRangeTitle":"Aegean","fullRangePath":"aegean\/dining\/","fullProductPath":"aegean\/dining\/small-brasserie-dining-table\/","hasImage":"0"}]

Но когда я делаю что-то вроде,

alert(html.productTitle)

все, что я получаю, не определено?

Что я делаю не так? J

Ответы [ 4 ]

6 голосов
/ 20 апреля 2011

Это потому, что ваша переменная html является массивом? Разве вы не должны делать ...

alert(html[0].productTitle);
2 голосов
/ 20 апреля 2011

Попробуйте html [0] .productTitle, я сталкивался с этой проблемой несколько раз.

0 голосов
/ 21 апреля 2011

попробуйте сделать что-то вроде этого:

alert(html.d); // this will show the result of your ajax call

Я не знаю, в чем причина использования свойства 'd', но если вы можете взглянуть на свой результатиспользуйте инструмент отладки, чтобы увидеть, какие данные возвращаются вашим AJAX-вызовом.

Если вы хотите преобразовать вашу строку JSON в и объект, вы можете сделать следующий код:

var respuesta = jQuery.parseJSON(html.d);

0 голосов
/ 21 апреля 2011

Попробуйте использовать JQery JSON AJAX-функцию вместо $ .AJAX, он будет анализировать JSON для вас.

http://api.jquery.com/jQuery.getJSON/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...