为什么在codeigniter中使用按钮onclick发送功能时没有数据结果

时间:2016-09-23 18:04:13

标签: jquery ajax codeigniter button onclick

我是codeigniter的新手。

为什么当我使用按钮onclick函数时,视图中没有结果数据.. ??

这里是关于views1的html

                    <?php $no = 1; ?>
                    <?php foreach($noper as $row): ?>
                    <tr class="paginate"> 
                        <td><?php echo $no; ?></td>
                        <td id = "Noper"><?php echo $row->no_per; ?></td>
                        <td><?php echo $row->tanggal_perawatan; ?></td>
                        <td><button type="button" class="btn btn-success" onClick="noper(this)">Lihat Detail</button></td>
                    </tr>
                    <?php $no++; ?>
                 <?php endforeach; ?>

和views1中的jquery ajax函数

function noper(a){
var no_per=$(a).closest("tr").find("#Noper").html();
$.ajax({
    url:"<?php echo base_url('admin/detper1/view_detail_per1/')?>",
    type: "POST",
    data:{
        noper:no_per
    },
    success:function(data){
        console.log(no_per);
        //alert(data);
        window.location = '<?php echo base_url('admin/detper1/view_detail_per1/')?>'; 
        },
    error:function(xhr,ajaxOption,errorThrown){
         console.log(xhr);
       console.log(ajaxOption);
       console.log(errorThrown);
        }
});}

这是我的控制器

class Detper1 extends MY_Controller {

public function __construct()
{
    parent::__construct();
    $this->load->model('admin/detail_model','detail');
}

public function view_detail_per1(){

        $id2 = $this->input->post('noper');
        $this->detail->view_det1($id2);

        $data['noper'] = $this->detail->view_det1($id2);
        $this->load->view('admin/perawatan/detper1_view',$data);
}
}

和我的模型

public function view_det1($id2){

    $this->db->select('no_per,nama_pasien,jenis_perawatan,jenis_penyakit,nama_obat,jumlah_obat,tanggal_perawatan');
    $this->db->from($this->table);
    $this->db->where('no_per',$id2);
    $query = $this->db->get();
    return $query->result();
}

并且这会查看detper_view1(用于显示结果)

 <?php
                    $no = 1;
                ?>
                <?php foreach($noper as $row): ?>
                    <tr> 
                        <td><?php echo $no; ?></td>
                        <td><?php echo $row->no_per; ?></td>
                        <td><?php echo $row->nama_pasien; ?></td>
                        <td><?php echo $row->jenis_perawatan; ?></td>
                        <td><?php echo $row->jenis_penyakit; ?></td>
                        <td><?php echo $row->nama_obat; ?></td>
                        <td><?php echo $row->jumlah_obat; ?></td>
                        <td><?php echo $row->tanggal_perawatan; ?></td>
                    </tr>
                    <?php $no++; ?>
                 <?php endforeach; ?>

但是当我尝试手动编辑值(在'no_per'旁边的内部子句)在模型中使用另一个数字ID(如1,2或等)时工作正常且成功。结果按照我之前输入的id显示值。

任何可以帮助我或建议我解决它..? 谢谢你,之前, 最好的问候

2 个答案:

答案 0 :(得分:0)

您的ID元素应该是唯一的。

请尝试更改此参数:

id = "Noper"

到此:

class = "Noper"

并调整你的js参考[...]find(".Noper")

答案 1 :(得分:0)

尝试更改

<td id = "Noper"><?php echo $row->no_per; ?></td>

<td class = "Noper"><?php echo $row->no_per; ?></td>

和js文件

var no_per=$(a).closest("tr").find("#Noper").html();

var no_per=$(a).closest("tr").find(".Noper").html();

因为id应该始终是唯一的