2017-10-11 87 views
0

我很抱歉如果此問題之前曾被問到過,但我似乎無法讓他們爲我工作。 PHP腳本數據庫結果傳遞給JavaScript這樣的:在JavaScript中從PHP對象中提取mySQL查詢結果

[{"id":"1","name":"Babe Ruth","loginID":"babe","loginPW":"babe123"}] 

我已經試過JSON.stringify:然後

$queryResult = mysqli_query($dbase, $query); 

if ($queryResult) { 
    $result = array(); 
    while($row = mysqli_fetch_array($queryResult)) { 
     $result[] = $row; 
    } 
} 

echo json_encode($result); 

的JavaScript通過AJAX (執行console.log的結果)收到此,Object.keys(arr),foreach($ arr as $ key => $ value)for(i in arr),但都沒有成功。

我怎樣才能讀取這個鍵值對?

TIA。

+0

嘗試JSON.parse()來如下所述:https://www.w3schools.com/js/js_json_parse。 asp –

+0

謝謝ju。很明顯,這是正確的方法,儘管必須使用id鍵訪問,正如Vasya指出的*(標記的答案)*。 – iSofia

回答

1

您響應是對象數組,可以使用下一個代碼:

var users = JSON.parse(response); 

for(var objId in users) { 
    // here you can use construction users[objId].your_key 

    console.log('id', users[objId].id); 
    console.log('name', users[objId].name); 
    console.log('loginID', users[objId].loginID);   
    console.log('loginPW', users[objId].loginPW); 
} 
+0

非常感謝Vasya Zhuryk!它終於完美運作了。 – iSofia

1

我認爲你正在尋找JSON.parse,e.g

var user = JSON.parse(response)[0]; 

// Should print "Babe Ruth" 
console.log(user.name); 
+0

感謝您的建議,但它只是返回* undefined *。 – iSofia

+0

我試過你原來的發佈代碼,但一定錯過了你的修改。 *這也起作用。*謝謝J0sh0nat0r。 – iSofia

1

您複製什麼樣子包含一個對象的JS數組。

假設你的數組是arr則:

var obj = arr[0]; 

console.log(obj.id); 

如果粘貼什麼實際上是一個字符串,那麼你就需要解析JSON字符串var arr = JSON.parse(response);並繼續如上所述。

+0

謝謝您的建議,但它只是返回* undefined *。 – iSofia

0

你應該得到你的迴應的索引0,然後你可以操縱你的對象。

var response = [{"id":"1","name":"Babe Ruth","loginID":"babe","loginPW":"babe123"}]; 
response = response[0]; 

console.log(response.id); 
+0

謝謝你的建議,但它只是返回* undefined *。 – iSofia