gpt4 book ai didi

javascript - 如何从mySQL中获取数据并在Modal中查看

转载 作者:行者123 更新时间:2023-11-29 01:49:16 25 4
gpt4 key购买 nike

我试图通过在单击链接时显示模态来显示我的名为 tidketprob 的表列中的一些记录。模态和查询看起来不错(通过回显 last_query 检查),但模态未显示任何数据...请帮助我 :(

JS代码:

$('#showdata').on('click', '.item-info', function(){
var tid = $(this).attr('data');

$.ajax({
type: 'ajax',
method: 'get',
url: '<?php echo base_url() ?>repeatproblem/infoReprob',
data: {tid:tid},
async: false,
dataType: 'json',
success: function(data){
var html = '';
var i;
for(i=0; i<data.length; i++){
html +='<p>'+data[i].tid+'</p>'+
'<p>'+data[i].ketprob+'</p>';
}
$('#infoModal').modal('show');
$('#view_errorcode').html(html);
},
error: function(){
alert('Gagal Info Kode Error!');
}
});
});

我的 Controller :

public function infoReprob(){ 
$result = $this->m->infoReprob();
echo json_encode($result);
}

我的模型:

public function infoReprob(){
$tid = $this->input->get('tid');
$this->db->select('tid, ketprob')->where('tid', $tid);
$query = $this->db->get('histprob');
if($query->num_rows() > 0){
return $query->row();
}else{
return false;
}
}

最佳答案

如果此条件为真,则您正在模型中使用 return $query->row(); 语法:$query->num_rows() > 0,因此这意味着您的模型将返回查询第一行的对象表示,下面 Controller 中的 $result 变量将是一个具有两个属性的对象:tidketprob

public function infoReprob(){ 
$result = $this->m->infoReprob();
echo json_encode($result);
}

现在看看你的ajax调用成功回调函数

success: function(data){
var html = '';
var i;
for(i=0; i<data.length; i++){
html +='<p>'+data[i].tid+'</p>'+
'<p>'+data[i].ketprob+'</p>';
}
$('#infoModal').modal('show');
$('#view_errorcode').html(html);
}

由于您上面的 Controller 使用 echo json_encode($result); 语法,您的 ajax 调用将返回 $result 变量和 data< 的 json 表示 上面成功回调函数中的变量如下所示

{ "tid": "1", "ketprob": "abc" }

问题是,ajax 成功回调函数中的 data.length 将是未定义的,因为 data 不是数组,所以 for 循环将不会被执行并且 html 将是一个空字符串,参见 this jsfiddle .这就是为什么您的模式不显示任何数据。

要解决此问题,我建议按如下方式更改您的模型代码

public function infoReprob(){
$tid = $this->input->get('tid');
$this->db->select('tid, ketprob')->where('tid', $tid);
$query = $this->db->get('histprob');
return $query->result();
}

通过使用 return $query->result(); 语法,您的模型将始终返回一个对象数组。结果,您的 ajax 调用将返回这样的 json

[ { "tid": "1", "ketprob": "abc" } ]

这是一个 json 数组,所以您的 ajax 成功回调函数中的 data.length 不会是未定义的,您的模式将显示数据。参见 this jsfiddle ,您会看到 html 变量不为空。

关于javascript - 如何从mySQL中获取数据并在Modal中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com