繁体   English   中英

如何使用ajax代码通过CodeIgniter将视图数据传递给Controller?

[英]How to pass view data to Controller by CodeIgniter using ajax Code?

我在从页面删除行数据时遇到问题。 单击“确定”按钮后,将不会显示任何内容。

<td><a id ="mybutton" data-toggle="modal" data-target="#confirm_delete_button" data-id="<?php  echo $row -> id?>"  href="" ><i class="glyphicon glyphicon-remove"></i></a>

模态是

<div class="modal fade" id="confirm_delete_button" role="dialog" aria-labelleby="myModalLabel" aria-hidden="true" z-index: 1050;>
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                <h class="modal-title" id="myModalLabel">Delet this data</h>

            </div>
            <div class="modal-body">
              <h4>Are you sure? </h4>
              <div id="done"></div>
            </div>

              <div class="modal-footer">
                <button type="button" class="btn btn-danger" id="confirmOk">Ok</button>
                <button type="button" class="btn btn-success" data-dismiss="modal" aria-hidden="true">Cancel</button>
              </div>
          </div>
        </div>
      </div>

JQuery代码是

<script type="text/javascript">
        $(document).ready(function(){

          $('#mybutton').click(function(){
            var id = $(this).data('id');
            $('#confirmOk').data('id',id);
              });

          $('#confirmOk').click(function(){
           var id = $(this).data('id');
            $.ajax {
              url : "<?php echo base_url();?>item_list/delete_item/",
              type : "post" ,
              data : {"id":id},
              dataType:"json",
              success : function (data) {
                $('#confirm_delete_button').modal('hide');

                } 

                  }
                    });
              });
        </script>

控制器文件item_list.php的功能是

public function delete_item () {
    //$id = $this->uri->segment(3);
    $id=$this->input->post('id');
    $this -> item_list_model -> delete_item ($id);
     echo $id;
}

item_list_model.php文件是

public function delete_item ($id) {

    return $this -> db -> query ("DELETE FROM item WHERE id='$id' ");

            }

输出为“确定”按钮不会删除该行

试试下面的代码

调节器

    public function delete_item () {
        //$id = $this->uri->segment(3);
        $id=$this->input->post('id');
        $result = $this->item_list_model->delete_item ($id);
             if($result > 0 ){
             echo "success";
             }else{
             echo "failure";
             }
    }

模型

    public function delete_item ($id) {      
        $this->db->where('id', $id);
        $this->db->delete('item');
        return $this->db->affected_rows();          
        }

阿贾克斯

           success : function (data) {
            //$('#confirm_delete_button').modal('hide');
           alert(data);
            } 

实际上,您进入控制器的ajax发布终结点应该使用echo + json enconde返回一些响应。 这样,您成功回调到ajax jquery调用中就可以捕获它并正确继续流程(隐藏模式)。

Codeigniter中的JQuery Ajax POST

尝试将data : {"id":id},更改为data : {id:id},也许数据ID在控制器中未正确发送,这就是为什么它不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM