Ajax成功提交到同一页面后,$ _POST无法正常工作

I create a Form after user click on a div, and I submit on same page using Ajax without reloading page.

I see that the form is submitted successfully with data when I check the network tab in dev tools but when I print $_POST or check if isset($_POST["data"]), I get $_POST is empty and the if condition is false, is there any way to get the data in PHP ($_POST) without refreshing the page.

I get no errors in console or php

When using:

form.submit();

The form is submitted and I get $_POST but the page reload, this is why I need to use Ajax

My code on Js page :

function post(path, parameters) {
    var form = $('<form id="form"></form>');

    form.attr("method", "post");
    form.attr("action", path);

    $.each(parameters, function(key, value) {
        var field = $('<input></input>');
        field.attr("type", "hidden");
        field.attr("name", key);
        field.attr("value", JSON.stringify(value));
        form.append(field);
        form.append(data);
    });

    $(document.body).append(form);  

    $.ajax({
        type: "POST",
        url: path,
        data: $("#form").serialize(),
        success: function(data) {
          $('.before').hide();
          $('.next').show();
        }
    });
    return false;
}

$('.card-container').on('click',function(e){
    e.preventDefault();
    var page = window.location.href;
    var object = {
    'array': [
      ['string1', 'string2'],
      ['string3', 'string4']
    ]
    };
    post(page, object);
});

My code on PHP page :

var_dump($_POST);
if (isset($_POST['array'])) {
    $array = json_decode($_POST['array'], true);
    print_r("ok");
}

The full code is too long to include it here.

doushi7819
doushi7819 “将对象作为数据发送”可以解释更多吗?一个例子?它会解决问题吗?
11 个月之前 回复
duancan5327
duancan5327 您只需要表单....如上所述,只需将对象作为数据发送即可
11 个月之前 回复
duangong937906
duangong937906 PHP中的$_POST能否在没有刷新的情况下获得新值?
11 个月之前 回复
duandu1966
duandu1966 我不使用框架,只有js,ajax,php,我现在在本地工作,我没有错误,Ajax正在成功提交数据
11 个月之前 回复
doq91130
doq91130 火焰,你能解释一下吗?我也尝试发送这样的数据:$field=“”;$.each(参数,函数(键,值){$field=key+“:”+JSON.stringify(value)+“,”+$field;});$form=“{”+$field.slice(0,-1)+“}”;
11 个月之前 回复
dou426098
dou426098 你使用框架吗?你有CSRF保护?还要将错误函数添加到您的AJAX中,也许您会看到更多:error:function(xhr){console.log(xhr);}
11 个月之前 回复
duanniu4106
duanniu4106 我用varpage=window.location.href;这是相同的结果,因为表单被提交到同一页面。
11 个月之前 回复
donglizhan7848
donglizhan7848 您不需要在javascript中创建<form>元素。您只需发送一个数据键为$.ajax({})的对象
11 个月之前 回复
duanhegn231318
duanhegn231318 varpage=“”;这是一个空路径传递给函数post()
11 个月之前 回复
douwu8524
douwu8524 数组:[{“key”:“value”,“key”:“value”}]
11 个月之前 回复
doudouba4520
doudouba4520 与此类似:
11 个月之前 回复
doujie9882
doujie9882 您可以从网络标签发布数据吗?
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问