Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
Javascript $this->;输入->;codeigniter中的post()始终为空_Javascript_Php_Html_Ajax_Codeigniter - Fatal编程技术网

Javascript $this->;输入->;codeigniter中的post()始终为空

Javascript $this->;输入->;codeigniter中的post()始终为空,javascript,php,html,ajax,codeigniter,Javascript,Php,Html,Ajax,Codeigniter,我试图从一篇似乎总是空的AJAX文章中获得一个值。我已经尝试过在发布之前打印这个值,它工作正常,但是我无法通过$this->input->post()获得这个值 HTML <?php if ($product_info->stock > '1'){?> <button class="btn btn-lg btn-primary" product_id = "<?php echo $product_info->id;?>" id = "addto

我试图从一篇似乎总是空的AJAX文章中获得一个值。我已经尝试过在发布之前打印这个值,它工作正常,但是我无法通过$this->input->post()获得这个值

HTML

 <?php if ($product_info->stock > '1'){?>
 <button class="btn btn-lg btn-primary" product_id = "<?php echo $product_info->id;?>" id = "addtocart"><i class="fa fa-shopping-cart"></i>Add to Cart</button><?php}?>
数据参数具有使用ajax向服务器发送值的特定格式

试试这个

$(document).ready(function(){
    $("#addtocart").click(function(){
        var productid = $(this).attr('product_id');

    $.ajax({
        type: "POST",
        url: "<?php echo base_url();?>shoppingcart",
        data: {productid : productid},
        cache: true,
        success: function(productid){
            $("#cartstatus").html('<div class="alert alert-success"><strong>Success! </strong>Item has been added to the cart.</div>');
        }, error: function(productid){
            $("#cartstatus").html('<div class="alert alert-danger"><strong>Opps! </strong>Something went wrong.</div>')
        }
    });


   });
});
$(文档).ready(函数(){
$(“#addtocart”)。单击(函数(){
var productid=$(this.attr('product_id');
$.ajax({
类型:“POST”,
url:“购物车”,
数据:{productid:productid},
是的,
成功:函数(productid){
$(“#cartstatus”).html(“成功!项目已添加到购物车中。”);
},错误:函数(productid){
$(“#cartstatus”).html(“Opps!出了问题。”)
}
});
});
});

使用HTML5的数据属性“data-product\u id”,而不是使用自己的属性“product id”,因此HTML代码看起来像:

<button class="btn btn-lg btn-primary" data-product_id="<?php echo $product_info->id;?>" id="addtocart"><i class="fa fa-shopping-cart"></i>Add to Cart</button><?php}?>
<button class="btn btn-lg btn-primary" data-product_id="<?php echo $product_info->id;?>" class="addtocart"><i class="fa fa-shopping-cart"></i>Add to Cart</button><?php}?>
现在,整个代码看起来像

$(document).ready(function(){
    $(".addtocart").click(function(){
    var product_id = $(this).data('product_id');
        $.ajax({
            type: "POST",
            url: "<?php echo base_url();?>shoppingcart",
            data: product_id,
            cache: true,
            success: function(response){
                $("#cartstatus").html('<div class="alert alert-success"><strong>Success! </strong>Item has been added to the cart.</div>');
            }, error: function(response){
                $("#cartstatus").html('<div class="alert alert-danger"><strong>Oops! </strong>Something went wrong.</div>')
            }
        });
    });
});
$(文档).ready(函数(){
$(“.addtocart”)。单击(函数(){
var product_id=$(this).data('product_id');
$.ajax({
类型:“POST”,
url:“购物车”,
数据:产品标识,
是的,
成功:功能(响应){
$(“#cartstatus”).html(“成功!项目已添加到购物车中。”);
},错误:函数(响应){
$(“#cartstatus”).html(“Oops!出了问题。”)
}
});
});
});

希望它能工作。

您知道CSRF是否已打开吗?那将使邮局停止工作。我过去也遇到过类似的问题,我发现我必须先移动$this->input->post('productid')来填充变量,然后才能像在
$myVar=$this->input->post('productid')
中那样使用它(这与CSRF是分开的)。这应该是可行的,如果可能的话,请解释更改以及为什么它会起作用,以便其他人能够理解您的解决方案。
<button class="btn btn-lg btn-primary" data-product_id="<?php echo $product_info->id;?>" class="addtocart"><i class="fa fa-shopping-cart"></i>Add to Cart</button><?php}?>
var product_id = $(this).data('product_id');
$(document).ready(function(){
    $(".addtocart").click(function(){
    var product_id = $(this).data('product_id');
        $.ajax({
            type: "POST",
            url: "<?php echo base_url();?>shoppingcart",
            data: product_id,
            cache: true,
            success: function(response){
                $("#cartstatus").html('<div class="alert alert-success"><strong>Success! </strong>Item has been added to the cart.</div>');
            }, error: function(response){
                $("#cartstatus").html('<div class="alert alert-danger"><strong>Oops! </strong>Something went wrong.</div>')
            }
        });
    });
});