如何在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);`