我有以下问题:
查看:
<script>
function show(id) {
$.ajax({
url: '<?php echo site_url('index.php/controller/show_id'); ?>',
dataType: 'json',
data:({id: id}),
type: "POST",
success: function (data) {
alert( data.user_id);
}
});
}
</script>
控制器:
function show_id(){
$id= $this->input->post('id');
$id_list = $this->id_model->show_id($id);
$data['id'] = $id_list;
if($data['id']){
echo json_encode( $data['id'] );
} else {
echo json_encode( array('error' => true) );
}
}
如果我加载页面,我得到了#34; undefined&#34;作为警报。
如果我将JS更改为&#34; alert(data);&#34;我收到了sql表的所有内容。
我如何更改JS才能获得&#34; user.id&#34;列?
答案 0 :(得分:1)
请检查alert(typeof data);
if it
s获取字符串的数据类型然后您需要在对象中转换您的响应,然后您可以在对象中转换您的响应 -
var result = JSON.parse(data);
你得到一行或多行?????如果您获得单行,那么在转换为对象后,您必须像这样访问data.user_id
(转换为对象后) -
var userId = result[0]['user_id];
请试试这个..
答案 1 :(得分:0)
您未定义,因为在数据中找不到索引user_id。你首先循环遍历数组,然后你可以获得data.user_id的值 见下文。
success: function (data) {
var data = JSON.parse(data);
console.log(data);
for (var x in data){
console.log(data[x].user_id);
}
}