如何使用ajax将数据发布到控制器

时间:2017-09-06 06:18:49

标签: php ajax codeigniter

我无法从CI控制器的Ajax获取数据 这是我的javascript

$.ajax({
    type: "POST",
    data: {id:list_id},
    url: "<?php echo site_url('xxx')?>",
    success: function(data)
    {
      alert(data);           
    }
});

在我的控制器上,我尝试使用

获取 id
$list_id = $_POST['id'];

$list_id = $this->input->post('id');

但仍然没有获取ID数据

6 个答案:

答案 0 :(得分:0)

更改此行

data: {id:list_id},

data: {'id':list_id},

并在您的控制器中使用$ id = $ _POST [&#39; id&#39;]; // Added inverted comma here in key

答案 1 :(得分:0)

如果你控制了网址,它是否为你的控制器方法提供了一个完整而正确的路径?请检查一下;并确保list_id不是未定义的变量

"repositories": [
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
]

答案 2 :(得分:0)

更改此行 数据:&#34; id =&#34; + list_id,

这样可以正常使用

答案 3 :(得分:0)

$.ajax({
                type: "POST",
                data: {id:list_id},
                url: "<?php echo site_url('xxx')?>",
                success: function(data)
                {
                  myFunction(data);

                }
            });  
myFunction:function(data){
alert(data);
}

答案 4 :(得分:0)

如果您的Ajax脚本位于页面的末尾,那么您应该尝试这样:(它将与外部list = list.OrderBy(e=> {int i =Array.IndexOf(a, e.ID); return i == -1 ? a.Length + e.ID : i; }).ToList();一起使用,只需要在外部.js

之前调用它
.js

并获取控制器中的id

<script type="text/javascript">
    base_url = '<?=base_url()?>';
</script>

<script type="text/javascript">
    //var list_id = //add your code for where you get the id

    $.ajax({
        type: "POST",
        data: {id:list_id},
        url: base_url+"your_controller/your_function",
        success: function(data)
        {
            alert(data);
        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            alert(jqXHR);
            alert(textStatus);
            alert(errorThrown); 
            // This will gives you alert if ajax fail
        }
    });
</script>

答案 5 :(得分:0)

试试这个

var list_id=2;
  console.log(list_id)
  $.ajax({
                type: "POST",
                data: {"id":list_id},
                url: "<?php echo site_url('xxx') ?>",
                success: function(data)
                {
                  alert(data);

                }
            });

如果你使用chrome那么

  1. inspect element然后点击network,然后点击request点击header,然后检查您是否发送数据是否从ajax发送。
  2. 或者您可以使用echo "<pre>";print_r($_POST);die;检查控制器内部。
  3. 注意:检查此图片

    enter image description here

    图片底部显示了您的帖子数据。