0

我有一个简单的选择,它通过 ajax 更改发布数据。在同一页面上,我想从 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

4 回答 4

2

当我将对象发布到我的服务器时,我也遇到了类似的问题。原来我的内容实际上是在请求正文中传递的。

要访问内容,我必须使用以下内容:

$data = file_get_contents("php://input");

这使我可以将对象从请求正文中拉出,并将其放置在我可以操作的可用变量中。

这是我使用的参考:PHP Wrappers

于 2013-06-12T13:41:55.737 回答
0

删除数据类型为 html ,应该是这样的

 var request =  $.ajax({
        url : "cashregister",
        type : "POST",
        data : {prod_id : select_id, presenkort : presentkort_type}
    });

并通过提醒它检查 select_id 是否到来

于 2013-06-12T13:05:50.670 回答
0

我有一个类似的问题,但它取决于文件中的max_input_vars设置php.ini。我发现我发送了超过 1000 个变量 - 将其增加到 5000 个并且它起作用了。

于 2013-06-12T13:22:46.380 回答
0

将 DATATYPE 删除为 html 并提交完整的表单。

$j.ajax({
      url: '/cashregister/',
      type:'POST', 
      data:$j('#Id').serialize(),
      success:function(msg) {
      alert(msg);
      }

注意:#Id : 表单 ID

于 2013-06-12T13:18:26.770 回答