我试图通过ajax将一些变量发布到CodeIgniter控制器函数,但是ts会导致错误消息。
这是我的javascript函数
$(document).ready(function()
{
$('.add_cart').click(function(){
var quantity = $('#qty').val();
var product_id = $(this).data("productid");
var product_name = $(this).data("productname");
var product_price = $(this).data("price");
if(quantity != '' && quantity > 0)
{
$.ajax({
url:"<?php echo base_url(); ?>products/add_product_to_cart",
method:"POST",
data:{product_id:product_id, product_name:product_name, product_price:product_price, quantity:quantity},
success:function(data)
{
alert('success');
}
});
}
else
{
alert("Please Enter quantity");
}
});
});
这是我的控制器功能。
public function add_product_to_cart()
{
echo $_POST["product_id"];
}
但是当我通过firebug跟踪整个过程时。它给出了错误,即未定义的变量product_id或者当我尝试按照下面给出的回声时不打印任何东西。
有人可以帮我解决如何正确执行此操作,还是有任何特殊文件需要包含在ajax函数中?
答案 0 :(得分:2)
使用Codeigniter(版本2或3),您应该使用以下内容:
$product_id = $this->input->post('product_id');
以下是在Codeigniter中使用输入时的文档:
Ajax请求(调试):
如果您正在运行ajax呼叫,请在Chrome上转到 Inspector 并查看正在发送的ajax请求,这可以显示已发送到服务器的值。 (右键单击鼠标)
Inspect -> Network (toggle on XHR)
然后使用您的表单提交ajax请求,新项目应显示在网络选项卡的表格中,单击它,转到标题,然后向下滚动。它会向您显示您的ajax请求所需的所有信息,并确保它们正确发送。
更新:
正如Kelvin所指出的那样,您需要从方法更新您的ajax以对请求进行输入。
method:"POST"
至type:"POST"
答案 1 :(得分:0)
$.ajax({
url:"<?php echo base_url(); ?>products/add_product_to_cart",
type:"POST",
data:{product_id:product_id, product_name:product_name, product_price:product_price, quantity:quantity},
success:function(data)
{
alert('success');
}
);
在method : "POST"
中将其更改为type: "POST",
ajax并非使用与html相同的方式。
答案 2 :(得分:0)
var var_data = {product_id:product_id,
product_name:product_name,
product_price:product_price,
quantity:quantity}
$.ajax({
url:"<?php echo base_url(); ?>products/add_product_to_cart",
type:"POST",
dataType : 'json',
async : false,
data:var_data,
success:function(data)
{
alert('success');
}
});
控制器函数中的从var_data
获取post数组喜欢
$post_data = $this->input->post('var_data',true);
print_r($post_data);
尝试这样可能有帮助,更改方法键入
答案 3 :(得分:0)
存在语法错误
$(document).ready(function()
{
$('.add_cart').click(function(){
var quantity = $('#qty').val();
var product_id = $(this).data("productid");
var product_name = $(this).data("productname");
var product_price = $(this).data("price");
if(quantity != '' && quantity > 0)
{
$.ajax({
url:"<?php echo base_url(); ?>products/add_product_to_cart",
method:"POST",
data:{"product_id":product_id, "product_name":product_name, "product_price":product_price, "quantity":quantity},
success:function(data)
{
alert('success');
}
});
}
else
{
alert("Please Enter quantity");
}
});
});
参数应该是这样的 数据:{&#34; product_id&#34;:product_id,&#34; product_name&#34;:product_name,&#34; product_price&#34;:product_price,&#34;数量&#34;:数量},