【问题标题】:cannot pass array to php file via ajax request (jquery)无法通过 ajax 请求(jquery)将数组传递给 php 文件
【发布时间】:2020-03-24 07:20:09
【问题描述】:

我正在尝试通过 ajax 请求将序列化数组传递给我的 saveData.php 文件,以便将数据保存到我的数据库中。

var postData = $('#formular').serializeArray();

这是我要传递的数据。 我正在创建一个包含所有数据的数组,以便将其作为 json-Array 传递给 php 文件:

    var formArray={};
    $.each(postData, function (index, field ){
        formArray[field.name]=field.value;
    });
    var formData=JSON.stringify(formArray);

$.ajax({
        type: 'POST',
        contentType: 'application/json',
        url:"functions/saveData.php",
        data : formData,
    }).done(function(data) {
        console.log('done: '+data);
    }).fail(function(data) {
        console.log('fail: '+data);         
    });

当我在 PHP 中查看 $_POST 时,有一个 emty 数组...

在 php 方面,我尝试使用以下代码捕获数据....

$getPostedData=$_POST;

if($debug){
    echo '<pre>';
    print_r($getPostedData);
    echo'</pre>';
}

这给了我以下输出:

    Array
(
)

我做错了什么? 谢谢你的协助。

【问题讨论】:

    标签: php jquery json ajax


    【解决方案1】:

    简单的例子,类似于你的情况。用serialize()就够了:

    var postData = $('#formular').serialize();
    

    现在您可以简单地将其发送到 AJAX:

    $.ajax({
       url:"functions/saveData.php", 
       method:"POST",
       data: postData
    }).done(function(resp){
       console.log(resp);
    });
    

    HTML 代码表单如下所示:

    <form id="formular" onsubmit="javascript:return false;">
        <!-- for defined data -->
        <input type="hidden" name="order_id" value="3435" /> 
    
        <!-- for arrays -->
        <input type="text" name="ex_arr[]" value="3343" />
        <input type="text" name="ex_arr[]" value="1123" />
    
    </form>
    

    【讨论】:

    • 串联console.log('done: '+data); 表示string + array/object。只需console.log(data);。另外,请出示您的 HTML 表单。
    • @ccalbow,不客气)永远不要忘记输入/输出变量的数据类型
    • 问题不在于输出格式,而是空输出......现在它为我提供了 php 数组中所需的所有数据。它现在充满了数据。问题之一是内容类型。我删除了它,现在它可以工作了!非常感谢!
    • 是的,如果你不需要向PHP发送文件,使用这3行就足够了,没有别的了。
    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 2012-06-05
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 2021-09-05
    相关资源
    最近更新 更多