【发布时间】:2017-05-22 13:47:24
【问题描述】:
这是我的第一篇文章。我已经搜索了其他解决方案,而我发现的仅涉及该问题的组成部分。基本上这就是我想做的:
- 捕获表单数据(测试,工作);
- 使用 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>
【问题讨论】:
-
只需将 data: { serialisedForm, //tested using serialisedData } 改为 data: serialisedForm
-
谢谢,Ranjeet,但 var dump 仍然返回“array(0) { }”
-
在控制台查看请求,参数将如何发送..!
-
你能发布你的html吗?什么是表单 ID 或类?
-
完整的 .jsx 超过 1,000 行。所有工作正常并通过输出到控制台进行测试。无论如何,这是一个从我的 settings.json 文件中读取值的示例问题:
标签: javascript php ajax forms