如何在codeigniter中使用ajax从数据库中获取一行
我想在codeigniter中使用ajax从数据库中获取一行数据。
这是javascript函数 –
$(function(){ $("button[name='program_view_details']").click(function(e){ e.preventDefault(); var program_id=$(this).attr('id'); $.ajax({ url: "program_management/get_program_data", type: "POST", dataType: "html", data: "program_id="+program_id, success: function(row) { alert(row.program_name); } }); });
我不确定数据类型和post是否正确。
这是我的控制器function –
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()在成功中显示“未定义”。 请有人告诉我整个过程。 提前致谢。
在模型中
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);
如果您遇到任何问题,请告诉我。
$ data [‘programs’] = $ this-> program_management_model-> get_program_specific($ program_id);
您在控制器中回显的$ data基本上是一个数组[],而program是一个存在于$ data中的数组。 使用the回显控制器中的$ data
foreach(){}
或者回显模型中的$ query数组。 这样就可以了。在ajax成功调用中,只需将数据追加到要显示结果的元素即可。
根据您的页面更改名称。
在你的脚本中:
$.ajax({ 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);`