我在表中显示JSON响应,但得到undefined
。我从数据库中获得一条记录或多条记录。我在警报中得到正确的输出。
控制器
if (count($result) > 0) {
foreach ($result as $row){
$arr_result[] = $row->first_name .', '. $row->last_name .', '. $row->phone .', '.$row->chss_no;
}
echo json_encode($arr_result);
}
Ajax
submitHandler: function(form) {
var cust_name = $('#cust_name').val();
var mobile_no = $('#mobile').val();
$.ajax({
url: baseUrl + "/Search/get_search_result",
method: "POST",
data: {cust_name: cust_name,mobile_no:mobile_no},
success: function(response) {
var data = JSON.parse(response);
var trHTML = '';
$.each(data, function (i, o){
trHTML += '<tr><td>' + o.first_name +
'</td><td>' + o.last_name +
'</td><td>' + o.phone +
'</td></tr>';
});
$('.search_record tbody').append(trHTML);
}
});
}
表格
<div class="search_record" >
<table id="" class="table table-bordered table-striped">
<thead>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Mobile</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
我正在获取输出
在alert(response)
[
"Praveen, , 2121212121, jbhdbdhdb",
"Praveen, Sharma, 9898981234, 09\/ACDE10",
"Praveen, Sharma, 9898981234, 09\/ACDE10",
"Praveen, Sharma, 9898981234, 09\/ACDE10"
]
答案 0 :(得分:2)
您只有简单的字符串数组,而不是对象。阵列中的任何地方都没有first_name,last_name或phone属性。甚至没有一个对象可以具有这样的属性-从响应数据中很容易看出来。
最好的办法是更改服务器端代码,以便它以更结构化的JSON格式输出数据:
$arr_result = array();
if (count($result) > 0)
{
foreach ($result as $row)
{
$arr_result[] = array(
"first_name" => $row->first_name,
"last_name" => $row->last_name,
"phone" => $row->phone,
"chss" => $row->chss_no
);
}
}
echo json_encode($arr_result);
我还对代码进行了一些修改,因此即使没有结果,它也会始终以JSON格式输出一个空数组。
答案 1 :(得分:1)
在将$row
作为对象或数组编码为JSON之前,应将$arr_result = array();
if (count($result) > 0) {
foreach ($result as $row){
$arr_result[] = $row;
}
echo json_encode($arr_result);
} else {
echo "[]";
}
放入数组中。
barplot(height = dat$OUT, names.arg = row.names(dat))