Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX post值在到达CI控制器后变为布尔值_Ajax_Codeigniter - Fatal编程技术网

AJAX post值在到达CI控制器后变为布尔值

AJAX post值在到达CI控制器后变为布尔值,ajax,codeigniter,Ajax,Codeigniter,我在谷歌搜索了好几天,但仍然没有找到解决这个问题的答案。我有这个ajax函数,它可以更新mysql数据库中的记录。当我使用ajax插入新记录时,一切都很顺利,但当我通过ajax更新此记录时,它会给我403个禁止的响应。当我使用var_dump检查从ajax传递的值时,所有值都变成了布尔值。下面是我的代码,希望你能帮助我 Ajax更新 $.ajax({ url:'updateDeal', async:false, type:'post', data:{

我在谷歌搜索了好几天,但仍然没有找到解决这个问题的答案。我有这个ajax函数,它可以更新mysql数据库中的记录。当我使用ajax插入新记录时,一切都很顺利,但当我通过ajax更新此记录时,它会给我403个禁止的响应。当我使用var_dump检查从ajax传递的值时,所有值都变成了布尔值。下面是我的代码,希望你能帮助我

Ajax更新

$.ajax({
    url:'updateDeal',
    async:false,
    type:'post',
    data:{
        dealId:dealId,
        dealName:dealName,
        dealLocation:dealLocation,
        dealCategory:dealCategory,
        dealDescription:description,
        dealValidDate:dealValidDate,
        dealRegularPrice:dealRegularPrice,
        dealPromoPrice:dealPromoPrice,
        dealHighlights:tourHighlight,
        dealInclusion:inclusions,
        dealItenerary:itinerary,
        dealAdditionalServices:additional,
        isPromo:isPromo,
        isPublish:isPublish
    },
    beforeSend: function(){
        $('.image-loader').show();
    },
    success:function(results){
        var obj = $.parseJSON(results);
        if(!obj.hasError){
            $('.image-loader').hide();
            window.location = 'success?id=2';
        }
    }
});
控制器

public function updateDeal(){

        $data = array(
            "Id"                    => $this->input->post('dealId'),
            "dealName"              => $this->input->post('dealName'),
            "dealLocation"          => $this->input->post('dealLocation'),
            "dealCategory"          => $this->input->post('dealCategory'),
            "dealDescription"       => $this->input->post('dealDescription'),
            "dealValidDate"         => $this->input->post('dealValidDate'),
            "dealRegularPrice"      => $this->input->post('dealRegularPrice'),
            "dealPromoPrice"        => $this->input->post('dealPromoPrice'),
            "dealHighlights"        => $this->input->post('dealHighlights'),
            "dealInclusion"         => $this->input->post('dealInclusion'),
            "dealItenerary"         => $this->input->post('dealItenerary'),
            "dealAdditionalServices" => $this->input->post('dealAdditionalServices'),
            "isPromo"               => $this->input->post('isPromo'),
            "isPublished"           => $this->input->post('isPublish')
        );
        var_dump($data);

    }
结果

array(14) {
  ["Id"]=>
  bool(false)
  ["dealName"]=>
  bool(false)
  ["dealLocation"]=>
  bool(false)
  ["dealCategory"]=>
  bool(false)
  ["dealDescription"]=>
  bool(false)
  ["dealValidDate"]=>
  bool(false)
  ["dealRegularPrice"]=>
  bool(false)
  ["dealPromoPrice"]=>
  bool(false)
  ["dealHighlights"]=>
  bool(false)
  ["dealInclusion"]=>
  bool(false)
  ["dealItenerary"]=>
  bool(false)
  ["dealAdditionalServices"]=>
  bool(false)
  ["isPromo"]=>
  bool(false)
  ["isPublished"]=>
  bool(false)
}

我认为在发送ajax请求时,上的url会出现一些混乱

在ajax请求中尝试以下操作:

url : 'yourcontrollername/updateDeal';

我已经解决了我的问题,是mod_安全人员一直在阻止参数。谢谢你

var\u dump$this->input->post;这将证明更有用。请使用此数据更新您的问题。您可能需要执行以下“dealId”:dealId,这样javascript就不会混淆变量名和索引名。@MonkeyZeus,我尝试了您的建议,但得到了相同的结果。我通过在每个输入->post中使用var_dump来更改变量名并检查输出。但我认为问题不在于ajax,因为我注意到所有Response的状态代码都是403 forbidden,这是没有意义的,因为得到403:forbidden意味着您永远无法看到您在问题中发布的输出。我认为你应该仔细看看莫哈迈德的答案,因为他在正确的轨道上。如果你只是回应“你好,世界”;在这个函数中,去掉剩下的代码,那么当你访问www.yourwebsite.com/controllerName/updateDeal时,你会得到什么?嗨@Mohmmad,我已经尝试过了,但仍然给我403个响应。你能给我看一下表单或视图吗,这样我们就可以找到问题了