我有一个简单的选择,在更改时通过ajax发布数据。在同一页面上,我想从POST数组中获取数据但是post数组是空的。这是代码。
的Javascript
$('.product-selectbox').change(function() {
var select_id = $(this).attr("id");
var presentkort_type = $(this).val();
presentkort_type = presentkort_type;
alert(presentkort_type);
//alert("id is "+id);
var request = $.ajax({
url : "cashregister",
type : "POST",
data : {
prod_id : select_id, presenkort : presentkort_type
},
dataType : "html"
});
request.done(function(msg) {
$('#data').html(select_id);
console.log(select_id);
console.log(presentkort_type);
location.reload(true);
});
request.fail(function(msg) {});
});
PHP
if (isset($_POST['prod_id'])) {
$product_id = (int)$_POST['prod_id'];
print "product id is ".$product_id;
} else {
print "no data";
$product_id = (int)$_POST['prod_id'];
}
答案 0 :(得分:2)
当我将对象发布到我的服务器时,我遇到了类似的问题。事实证明,我的内容实际上是在请求正文中传递的。
要访问内容,我必须使用以下内容:
$data = file_get_contents("php://input");
这允许我将对象拉出请求主体并将其放在一个可以操作的可用变量中。
以下是我使用的参考:PHP Wrappers
答案 1 :(得分:0)
删除数据类型为html,它应该是这样的
var request = $.ajax({
url : "cashregister",
type : "POST",
data : {prod_id : select_id, presenkort : presentkort_type}
});
并通过提醒来检查select_id是否来了
答案 2 :(得分:0)
将DATATYPE删除为html并提交完整表格。
$j.ajax({
url: '/cashregister/',
type:'POST',
data:$j('#Id').serialize(),
success:function(msg) {
alert(msg);
}
注意:#Id:表单ID
答案 3 :(得分:0)
我遇到了类似问题,但问题归结为max_input_vars
文件中的php.ini
设置。我发现我发送了超过1000个变量 - 将其增加到5000并且有效。