2012-01-19 89 views
0

我使用$ .getJSON查詢PHP頁面(不是在外部站點上),它將返回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}] 

如果任何人有,什麼是對我會的想法感謝你。

編輯:現在看起來好像我的應用程序中的所有ajax響應都以<??>爲前綴。他們以前都工作過,現在他們都沒有,我不知道發生了什麼。

+0

「我不知道爲什麼包括在內。」什麼??你的問題不是特別清楚。 – Jere

+0

我想OP是問爲什麼''在服務器發送的響應中。 – 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

是的JSON是正確的,你可以在http://jsonlint.com/ – Rafay