2012-01-19 3 views
0

Я запрашиваю страницу PHP (не на внешнем сайте) с использованием $ .getJSON, который вернет набор результатов MySQL, я использовал json_encode() для форматирования набора результатов строка JSON. Проблема в том, что я возвращаю данные, но когда я пытаюсь установить значения некоторых скрытых полей, ничего не происходит. У меня было это, но теперь это не так. Я, должно быть, что-то изменил, не осознавая этого. Вот код:.getJSON .each() Не обрабатывать данные JSON

JQuery:

$.getJSON('includes/Lookup.php', {locationType:$('#location').val()}, function(data) { 

var valA = $('#valA'); 
var valB = $('#valB'); 
var valC = $('#valC'); 

$.each(data, function(index, data) { 
    valA.val(data.field_valueA); 
    valB.val(data.field_valueB); 
    valC.val(data.field_valueC); 
}); 
}); 

Lookup.php:

<?php 
$db = new MySqlDB(); 

if(!$db) { 
// Show error if we cannot connect. 
echo 'ERROR: Could not connect to the database.'; 
} else { 

if(isset($_GET['locationType'])){ 

    $locationType = $_GET['locationType']; 
    $db->where('id', $locationType); 

    $sql = "SELECT field_valueA, field_valueB, field_valueC FROM table"; 
    $results = $db->query($sql); 

    echo json_encode($results); 

} else { 
    echo 'not set'; 
} 
} 

Это то, что я получаю в Firebug:

<??> {"field_valueA":2,"field_valueB":3.12,"field_valueC":12345} 

Я не знаю, почему <??> Включено. Я делаю это точно вызов в двух разных местах, на два разных таблицах (ни работает), это то, что я получаю от другого вызова:

<??> [{"field_valueA":905,"field_valueB":18.180000305176,"field_valueC":16453}] 

Если кто-нибудь имеет представление о том, что происходит на I Я ценю это.

EDIT: Теперь кажется, что ВСЕ мои ответы ajax во всем моем приложении префиксны с <??>. Все они работали до этого, а теперь это не так, я понятия не имею, что происходит.

+0

«Я не знаю, почему это включено». Какие?? Ваш вопрос не особенно ясен. – Jere

+0

Я думаю, что ОП спрашивает, почему '' находится в ответе, отправленном с сервера. – BNL

+0

А ... Я понятия не имел. Я подумал, что это просто означает консоль. – Jere

ответ

1

Решено! Я смущен, чтобы сказать, что у меня была опечатка в моем коде, очень легко пропустить дополнительный <?. Спасибо за ваши предложения.

+0

Отлично, что вы решили свою проблему! Чтобы решить эту проблему, вы можете нажать галочку на этом ответе или на другой ответ, который, по вашему мнению, помог вам решить вашу проблему. – RedRiderX

+0

Спасибо Redrider. Я это сделаю. –

1

Ваш PHP, похоже, в конце концов пропустит закрывающий тег php ?>. Может быть, поэтому она ведет себя странно ...

0

почему не просто сделать

valA.val(data.field_valueA); 
valB.val(data.field_valueB); 
valC.val(data.field_valueC); 

нет необходимости, чтобы перебирать в вашем случае

+0

Вы правы, не нужно итерации, но это все еще не работает. Действительно ли мой JSON? Приведенные мной примеры различны: один с скобками и один без. –

+0

yes the json correct Вы можете проверить это самостоятельно по адресу http://jsonlint.com/ – Rafay

Смежные вопросы