繁体   English   中英

使用 serializeArray() 转换表单数据并通过 .Ajax 发送 php

[英]convert form data using serializeArray() and sending php via .Ajax

这是我的第一篇文章。 我已经搜索了其他解决方案,我发现的内容仅涉及此问题的组成部分。 基本上这就是我想要做的:

  • 捕获表单数据(测试,工作);
  • 使用 serializeArray() 或 serialize() 转换表单数据(正确测试了两个选项,工作和输出到控制台);
  • 通过 Ajax 将此信息发送到服务器(不工作);
  • PHP 将数组保存为 CSV(尚未启动)。

波纹管是我正在使用的代码。 但首先,这里有一些我尝试过的替代方案。 通常我得到这个: array(0) { }

  • 'dataType' as Json - 返回错误;
  • 'GET'、'POST' 和 'REQUEST' - PHP 显示空数组;
  • 使用 form.serialize() - PHP 显示空数组;
  • 使用 form.serializeArray() - PHP 显示空数组;
  • var_dump($_POST)、var_dump($_GET)、var_dump($_REQUEST)。

     var serialisedForm = $(form).serializeArray(); var serialisedData = JSON.stringify(serialisedForm); console.log(serialisedData); //working console.log(serialisedForm); //working $.ajax({ type: "POST", url: "datacapture.php", data: { serialisedForm, //tested using serialisedData as well }, success: function() { window.open('datacapture.php'); }, error: function() { alert("the form data has not been sent to the server"); } })

这是我用来测试信息流的 datacapture.php 脚本。

<?php 

var_dump($_POST);

?>

编辑 - 这是一个示例表单项,从我的 settings.json 文件中读取 .text 和 .name :

<tbody>
                {
                this.props.settings.schemes[0].questions.map((q, i)=> {
                    return <tr><td>{q.text}</td><td><div class="YesNo"><input type="radio" required name={q.name} value="yes">Yes</input><input type="radio" required name={q.name} value="no">No</input></div></td></tr>
                })
                }
            </tbody>

只需将 1seralisedForm1 更改为 1seralisedData1 它将向 php 返回一个 json 对象,可以通过以下方式看到:

echo json_decode($_POST);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM