在Codeginitor中将Ajax中的Null接收到Controller发布请求

时间:2018-12-05 13:45:43

标签: php ajax codeigniter

我想将数据从Ajax函数发送到codeignitor中的控制器,但是我得到了空

 $.ajax({
        url:'shop/compare/getProductMeta',
        method: "POST",
        contentType: "json",
        data: {"proId": proID},
        success:function(data)
        {   
            for (i =0; i< data.length;  i++) {
                alert(data[i]);
            }
        },
        error: function(xhr, status, error) {
            alert('here 1');
         }

    });

在代码触发控制器中,我正在将数据接收为

public function compare($param1)
{
    if($param1=='getProduct')
    {
        $result=$this->metaCRUD->getAllProducts();
        echo json_encode($result);
    }elseif ($param1=='getItem') {
        $result=$this->siteCRUD->getAlItems();
        echo json_encode($result);

    }elseif($param1=='getProductMeta')
    {
        $pid=$this->input->post("proId");
        echo ('value'.$pid);
        $result=$this->siteCRUD->getProductMeta($pid);
        echo json_encode($result);
    }

}

我在这里为NULL

3 个答案:

答案 0 :(得分:0)

用此代码替换代码

$.ajax({
   url: 'shop/compare/getProductMeta',
   type: 'POST',
   data: {"proId": proID},
   error: function() {
      alert('Something is wrong');
   },
   success: function(data) {
        for (i =0; i< data.length;  i++) {
            alert(data[i]);
        }  
   }
});    

如果您仍然遇到问题,请尝试打印$_POST来查看要获取的数据类型。

答案 1 :(得分:0)

infer U ..不带引号,并确保该值正确而不是未定义。

答案 2 :(得分:0)

删除contentType: "json"或就像@ ashfaq-ahmed的答案一样