如何在代码点火器中使用 ajax 从数据库中获取行
How to get a row from database using ajax in codeigniter
我正在尝试使用codeigniter中的ajax从数据库中获取一行数据。
这是javascript函数-
$(function(){
$("button[name='program_view_details']").click(function(e){
e.preventDefault();
var program_id=$(this).attr('id');
$.ajax({
url: "<?php echo base_url();?>program_management/get_program_data",
type: "POST",
dataType: "html",
data: "program_id="+program_id,
success: function(row)
{
alert(row.program_name);
}
});
});
我不确定数据类型和帖子是否正确。
这是我的控制器功能-
public function get_program_data( ){
$program_id = $this->input->post('program_id');
$this->load->model('program_management_model');
$data['programs']= $this->program_management_model->get_program_specific($program_id);
echo $data;
}
这是模型-
function get_program_specific($program_id){
$query=$this->db->query("SELECT * FROM programs WHERE program_id='".$program_id."'");
return $query->result();
}
我正在寻找将行从控制器返回到 javascript 的方法。但是 alert() 在成功中显示"未定义"。请任何人告诉我整个过程。提前谢谢。
$data['programs']= $this->program_management_model->get_program_specific($program_id);
您在控制器中回显的$data基本上是一个数组[],程序是存在于$data中的数组。$data使用
foreach(){}
或回显模型中的$query数组。那将起到作用。在 ajax 成功调用中,只需将数据附加到要在其中显示结果的元素即可。
根据您的页面更改名称。
在您的脚本中:
$.ajax({
url: '<?php echo base_url();?>managealerts_edit/editalerts',
type: "POST",
data: {'id': edit_id},
cache: false,
dataType: "json",
success: function(row){
//alert(row.sub);
$('#edit').show();
$('#sub').val(row.sub);
$('#mess').val(row.mess);
}
});
在您的模型中:
$query = $this->db->query("SELECT fld_id, fld_course_id,fld_sub,fld_mess from tbl_alerts where fld_id='".$det."' ");
if ($query->num_rows() > 0)
{
$row = $query->row_array();
$data=array("sub" => $row['fld_sub'], "mess" => $row['fld_mess']);
echo json_encode($data);
}
在控制器中:
$det = $this->input->post('id');
//$alertsres['tbl_alerts'] = $this->managealerts_m->select_editalerts($det);
$this->managealerts_m->select_editalerts($det);`
function get_program_specific($program_id){
$temp=array();
$query=$this->db->query("SELECT * FROM programs WHERE program_id='".$program_id."'");
$temp= $query->row_array();
echo $temp['program_name'];
}
在控制器中更改行
$data['programs']= $this->program_management_model->get_program_specific($program_id);
跟
$this->program_management_model->get_program_specific($program_id);
最后在JavaScript中
alert(row);
如果您遇到任何问题,请告诉我。
相关文章:
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- 将数据保存到数据库(ajax/php)后,使文本字段变灰/禁用
- 使用formData使用ajax将图像插入数据库
- AJAX,用于显示数据库数据
- Codeigniter:通过Ajax上传图像并存储在数据库中
- 每隔5秒从数据库获取数据,并通过AJAX将其发送到视图
- 使用Mysqli、PHP和AJAX的聊天系统正在将空白消息插入数据库
- 通过javascript确认AJAX更新数据库
- 使用jQuery/Ajax从数据库中检索记录
- 为什么 Javascript 和 AJAX 调用(在页面加载时)会导致数据库行为空?(脸书画布)
- 当用户键入一封信时,如何使用ajax自动完成来显示MySQL数据库中的值
- 使用Javascript、ASP.NET和AJAX防止重复的数据库条目
- jquery ajax 数据库不会更新
- AJAX 数据库更新
- AJAX数据库使CPU进程高
- 如何组合来自不同JS文件的对Ajax数据库的多次调用
- AJAX数据库更新与CSS按钮颜色改变使用Codeigniter
- Ajax数据库浏览器页面刷新更改页面而不是刷新页面
- 在ClistView中更新Ajax数据库
- 如何显示HTML模态,取决于Javascript/AJAX数据库调用的结果