Codeigniter ajax - 在 Codeigniter 中检索行 JQuery 不起作用
Codeigniter ajax - retrieving rows in Codeigniter with JQuery not working
我正在研究如何使用 Codeigniter 和 AJAX 从数据库中检索行,但它不起作用,我按照此处的步骤操作:How to get a row from database using ajax in codeigniter 但什么也没有:
这是我的代码:
table(用户):
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| id_user | int(11) | NO | PRI | NULL | auto_increment |
| name | int(11) | YES | | NULL | |
| information | varchar(200) | YES | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
控制器(welcome.php):
function get_invoices()
{
$company = $_POST['pass'];
$this->login_select->get_login($company);//model
}
view(JQuery) 一旦加载,就会有一个表单,其中一种类型为文本(命名为 pass),另一种类型为提交:
function sendData(){
var data = $('form').serialize();
$('form').unbind('submit');
$.ajax({
url: '<?php echo base_url()?>index.php/welcome/get_invoices',
type: 'POST',
data: data,
success: function(data, textStatus, xhr) {
$('div#message').html(data);
}
});
}
这里的模型(login_select.php)就是问题所在:
public function get_login($myid)
{
$temp = array();
$this->db->select("user.*");
$query = $this->db->get_where('user', array('id_user'=>$myid));
$temp= $query->row_array();
echo $temp['name'];
//return $temp;
}
最后我得到:
A PHP Error was encountered
Severity: Notice
Message: Undefined index: name
Filename: models/login_select.php
Line Number: 41
如何解决这个问题?因为我不仅要恢复一行,还要恢复 table 中的整行。谢谢
在 login_select.php 中,$temp
可能与您认为的不一样。
$temp['name']
不存在,而您正在尝试使用它,因此它会引发未定义的索引错误。在通过
之类的东西使用它之前,请确保 $temp['name']
存在
return isset($temp['name']) ? $temp['name'] : false;
或运行die(var_dump($temp))
那里看看发生了什么。
我修复了它,但我不知道这是否是一个好的做法:
基本上我创建了另一个视图(此处打印的所有内容都将通过 ajax 在我的 div 中更新):
控制器:
function get_invoices()
{
$data['login2'] = $this->login_select->get_login($company);
$this->load->view('ajaxtest', $data);///the trick
}
JQuery在视图中是一样的。
模型(这里没有什么奇怪的):
public function get_login($myid)
{
$query = $this->db->get_where('user', array('id_user'=>$myid));
return $query->result_array();
}
技巧是在这种情况下创建另一个视图 ajaxtest.php:
<?php
echo sizeof($login2) . " ";
foreach ($login2 as $login2_item):
echo $login2_item["name"];
endforeach;
?>
如果以后有人需要的话。
我正在研究如何使用 Codeigniter 和 AJAX 从数据库中检索行,但它不起作用,我按照此处的步骤操作:How to get a row from database using ajax in codeigniter 但什么也没有: 这是我的代码:
table(用户):
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| id_user | int(11) | NO | PRI | NULL | auto_increment |
| name | int(11) | YES | | NULL | |
| information | varchar(200) | YES | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
控制器(welcome.php):
function get_invoices()
{
$company = $_POST['pass'];
$this->login_select->get_login($company);//model
}
view(JQuery) 一旦加载,就会有一个表单,其中一种类型为文本(命名为 pass),另一种类型为提交:
function sendData(){
var data = $('form').serialize();
$('form').unbind('submit');
$.ajax({
url: '<?php echo base_url()?>index.php/welcome/get_invoices',
type: 'POST',
data: data,
success: function(data, textStatus, xhr) {
$('div#message').html(data);
}
});
}
这里的模型(login_select.php)就是问题所在:
public function get_login($myid)
{
$temp = array();
$this->db->select("user.*");
$query = $this->db->get_where('user', array('id_user'=>$myid));
$temp= $query->row_array();
echo $temp['name'];
//return $temp;
}
最后我得到:
A PHP Error was encountered
Severity: Notice
Message: Undefined index: name
Filename: models/login_select.php
Line Number: 41
如何解决这个问题?因为我不仅要恢复一行,还要恢复 table 中的整行。谢谢
在 login_select.php 中,$temp
可能与您认为的不一样。
$temp['name']
不存在,而您正在尝试使用它,因此它会引发未定义的索引错误。在通过
$temp['name']
存在
return isset($temp['name']) ? $temp['name'] : false;
或运行die(var_dump($temp))
那里看看发生了什么。
我修复了它,但我不知道这是否是一个好的做法:
基本上我创建了另一个视图(此处打印的所有内容都将通过 ajax 在我的 div 中更新):
控制器:
function get_invoices()
{
$data['login2'] = $this->login_select->get_login($company);
$this->load->view('ajaxtest', $data);///the trick
}
JQuery在视图中是一样的。
模型(这里没有什么奇怪的):
public function get_login($myid)
{
$query = $this->db->get_where('user', array('id_user'=>$myid));
return $query->result_array();
}
技巧是在这种情况下创建另一个视图 ajaxtest.php:
<?php
echo sizeof($login2) . " ";
foreach ($login2 as $login2_item):
echo $login2_item["name"];
endforeach;
?>
如果以后有人需要的话。