php -ajax函数不向控制器发送数据

时间:2019-11-29 11:34:56

标签: php ajax codeigniter controller

Ajax函数:我可以在Ajax中获取ID,但无法发送给控制器。控制器正在调用,但无法在控制器中获取数据。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="calendar">
  <tbody></tbody>
</table>

控制器功能:

function select_report()
     {
      var re_id =  $('#report_id').val();
          // ajax adding data to database
          alert(re_id);
         $.ajax({
            url : "<?php echo site_url('Homepage/category/');?>",
            type: "POST",
            data: {'re_id':re_id},
           success: function(data)
           {
              window.location.href = "<?php echo site_url('Homepage/category/'); ?>";
           },
           error: function (jqXHR, textStatus, errorThrown)
           {
              alert('Error');
           }
       });
     }

3 个答案:

答案 0 :(得分:0)

尝试检查。

function select_report()
{
     var re_id =  $('#report_id').val();
     $.ajax({
        url: '<?php echo base_url();?>Homepage/category/',
        async: false,
        type: 'POST',
        data: {re_id : re_id},
        dataType: 'html',
        success: function(data) {
           console.log(data);
         }
   });

}

希望这对您有用。

答案 1 :(得分:0)

我们无法在ajax请求中加载视图。为此,我们使用了另一种方法

 function select_report()
    {
      var re_id =  $('#report_id').val();
      // ajax adding data to database
      alert(re_id);
       $.ajax({
          url : "<?php echo site_url('homepage/category/');?>",
          type: "POST",
          data: {'re_id':re_id},
          dataType: 'json',
           success: function(data)
           {
              console.log(data);
              if(data==true){
                window.location.href = "<?php echo site_url('homepage/category_demo/'); ?>"+re_id;
              }else{
                alert('Error');
              }
           },
           error: function (jqXHR, textStatus, errorThrown)
           {
              alert('Error');
           }
      });
    }

在控制器中

public function category()
    {
        $this->load->library('session');
        $this->load->helper('url');
        $re_id=$this->input->post('re_id');
        $report=$this->main_model->select_report($re_id);
        if(count($report)>0){
            echo json_encode(true);
        }else{
            echo json_encode(false);
        }       

    }
    public function category_demo($re_id){
        $data['report']=$this->main_model->select_report($re_id);
        $this->load->view('templates/header');
        $this->load->view('category.php',$data);
        $this->load->view('templates/footer');
    }

答案 2 :(得分:0)

如果您使用的是Chrome浏览器,请检查网络标签,并检查发送到服务器的标题数据。是否具有要发送到控制器的数据,并检查该URL的响应是什么。请同时检查响应 HTTP状态

然后在服务器端检查,确保URL可以进入您的控制器。您可以在方法代码中死掉(“测试”),以确保该请求与您的代码保持联系。

我认为问题出在您的网址上。