我是Yii2框架和PHP的新手。我使用Mongo DB作为后端数据库。我从集合中获取文档并从控制器返回数据作为Json。返回的数据如下所示。
{
"55b08c383e1a36233fdbdc06": {
"_id": { "$id": "55b08c383e1a36233fdbdc06" },
"address": [ "abcdgt", "zxcv" ],
"age": "23",
"email": [ "qwert@gmail.com","abcd@mail.com" ],
"location": "kollam",
"name": "ajiths",
"phoneno": [ "9522585456", "7875642256" ] ,
"sex": "male"
}
}
但我得到的是“未定义的”#39;尝试在Javascript代码中提醒 result.name 时。前端的代码如下所示。
function loadClient(id){
url = "<?= Yii::getAlias('@serverpathweb')?>/client/showclient?id="+id;
$.ajax({
url: url ,
method: "GET",
success: function(result){
alert(result.name);
}
});
}
控制器端的代码如下所示。
public function actionShowclient($id) {
$clientdetail = Yii::$app->mongodb->getCollection('client');
$result = $clientdetail->find(["_id" =>$id]);
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return $result;
}
任何人都可以告诉我如何获得值 result.name 。
答案 0 :(得分:5)
您获取ID为key
的JSON结果,因此请访问此类JSON
数据
首先使用Object.keys
获取您的JSON密钥
接下来使用键打印您需要的值
var id=Object.keys(result)[0]; //it will print your JSON key i.e. "55b08c383e1a36233fdbdc06"
alert(result[id]['name']); // it will print the name
请注意,如果您收到多个用户详细信息,请告知我们
答案 1 :(得分:0)
你的&#34;结果&#34; object可能是一个String,因为你不会告诉jQuery。尝试将选项dataType:json添加到您的请求中,如下所示:
$.ajax({ url: url, method: 'GET', dataType: 'json', etc...
编辑:看起来你的代码中还有一个简单的错误。您需要访问属性中的属性:
result[id].name