数据通过ajax发布后,PHP POST数组为空

时间:2013-06-12 13:04:55

标签: php jquery

我有一个简单的选择,在更改时通过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'];
}

4 个答案:

答案 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并且有效。