【问题标题】:How to get a row from database using ajax in codeigniter如何在codeigniter中使用ajax从数据库中获取一行
【发布时间】:2013-09-19 02:21:56
【问题描述】:

我正在尝试使用 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:program_id,不要将字符串联系到它。我猜 program_id 是您发送给控制器的参数?
  • 抱歉没有运气...输出没有区别...

标签: javascript ajax codeigniter jquery


【解决方案1】:

$data['programs']= $this->program_management_model->get_program_specific($program_id);

您在控制器中回显的 $data 基本上是一个数组 [],程序是一个存在于 $data 中的数组。使用

回显控制器中的 $data
      foreach(){}

或在模型中回显 $query 数组。这样就可以了。在 ajax 成功调用中,只需将数据附加到要显示结果的元素中。

【讨论】:

    【解决方案2】:

    根据您的页面更改名称。

    在你的脚本中:

    $.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);`
    

    【讨论】:

      【解决方案3】:

      在模型中

      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);
      

      如果您遇到任何问题,请告诉我。

      【讨论】:

        猜你喜欢
        • 2014-07-17
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多