0

コードイグナイターで 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に行を返す方法を探しています。しかし、アラート()は成功で「未定義」を示しています。どなたか最後まで教えてください。前もって感謝します。

4

3 に答える 3

0

ページごとに名前を変更します。

あなたのスクリプトで:

$.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);`
于 2016-04-12T07:51:11.190 に答える
0

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

コントローラーでエコーしている $data は基本的に array[] であり、プログラムは $data に存在する配列です。を使用してコントローラーで $data をエコーし​​ます。

      foreach(){}

または、モデルで $query 配列をエコーし​​ます。それはトリックを行います.そして、ajaxの成功呼び出しでは、結果を表示したい要素にデータを追加するだけです.

于 2013-09-14T14:19:12.657 に答える
-1

in model

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'];
}

in controller change the line

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

with

$this->program_management_model->get_program_specific($program_id);

and finally in javascript

alert(row);

please let me know if you face any problem.

于 2013-09-14T14:22:28.313 に答える