2016-08-15 35 views
0

我想根据用户输入的名字从数据库接收数据,一切工作正常我看到屏幕上的价值,没有错误这里是PHP代码:为什么我无法获取从PHP获取的对象的属性?

<?php 
$dbhost = "localhost"; 
$username = "root"; 
$password = ""; 
mysql_connect($dbhost,$username,$password); 
@mysql_select_db("trynew") or die(mysql_error()); 
$user ="mon"; 
$query = "SELECT * FROM trynewtable where name = '$user' "; 
$all_result = array(); 
$result = mysql_query($query); 
if($result==FALSE) 
{ 
    die(mysql_error()); 
} 
while($row = mysql_fetch_assoc($result)) 
{ 
$all_result[] = $row; 
} 
header('Content-Type: application/json'); 
$jsondata = json_encode($all_result);echo $jsondata; 
mysql_close(); 
?> 

JavaScript代码:

var loadingFunc=function() 
{ 
var xhr; 
if(window.XMLHttpRequest) 
{ 
xhr = new XMLHttpRequest(); 
} 
else 
{ 
xhr = new ActiveXObject('Microsoft.XMLHTTP'); 
} 
var jsonData= ""; 
xhr.onreadystatechange =function() 
{ 
if(xhr.readyState==4) 
{ 
    if(xhr.success =200) 
    { 
     jsonData = xhr.responseText; 
     document.getElementById("dvID").innerHTML = jsonData; 
     //var parsejson = JSON.parse(jsonData); 
     //document.getElementById("dvIDO").innerHTML = parsejson.age; 
     document.getElementById("dvIDO").innerHTML = jsonData[0].age; 
    } 
    else 
    { 
     document.getElementIdById("dvID").innerHTML = "it's not success "; 
    } 
} 
else 
{ 
console.log("error is here"); 
console.log(xhr.readyState); 
} 
} 
var element1 = document.getElementById("dvID") ; 
xhr.open("POST","index.php"); 
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
var sendD = document.getElementById("data_found").value; 
var data = "data_found=" + sendD; 
var element = document.getElementById("btn") ; 
if(element) 
{ 
element.addEventListener('click',function(){ 
console.log("just clicked") 
xhr.send(data); 
}) 
} 
}; 

window.onload = loadingFunc(); 

但我对HTML DIV看到输出是:

[{ “ID”: “1”, “姓名”: “星期一”, “时代”: “26”, “性别”: “F”}]

undefined

我得到的整个对象,但每当我试图获取对象的任何属性像这里的年龄(parsejson.age或jsonData [0] .age)它显示undefined,任何人都可以帮助我如何获取对象的任何属性?

请让我知道我做错了什么?

+0

这可能是一个'私人'属性? – Peon

+0

parsejson.Age not parsejson.age – KmasterYC

+1

取消注释JavaScript中的注释语句。您正在接收JSON作为明文 - 因此您必须对其进行PARSE才能获得具有属性的JavaScript对象。 –

回答

0

首先将明文响应转换为javascript对象。你已经有线,但看起来似乎,然后:

alert(jsonData["Age"]); //Age 
alert(jsonData.Age); //Age 
+0

它被注释掉,因为我已经尝试过了......然后我试着jsonData [0] .age但没有任何工作 – titlu