我正在努力将我的数据从 html 表单导入 mySQL 2 天,现在......
当我解决了maaany问题时,我被一个(恕我直言)空FormData对象困住了。我有一个表格
<form id="pricing">
...
<input id="fromDate" name="fromDate" value=""/>
...
<input type="submit" value="Go!"/>
</form>
数据传输不需要重定向到新页面,所以我选择了 XMLHttpRequest,也支持过时的浏览器。该代码或多或少是从教程中复制粘贴的。
const form = document.querySelector('#pricing');
// listen for submit even
form.addEventListener('submit', (event) => {
// disable default action
event.preventDefault();
// configure a request
const xhr = new XMLHttpRequest();
xhr.open('POST', 'forms/pricing.php');
// prepare form data
let data = new FormData(form);
// set headers
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
// send request
xhr.send(data);
console.log(data);
// listen for `load` event
xhr.onload = () => {
console.log(xhr.responseText);
}
});
到达登陆页面forms/pricing.php,点击“go”成功将一些固定值(为调试输入)存入数据库。但是,$_POSTvar 似乎是空的,我的数据对象是通过 PDO 存储的
'fromDate' => isset($_POST["fromDate"]) ? $_POST["fromDate"] : '1',
商店'1'而不是$_POST["fromDate"]. 而且在console.log(data);(其中数据是 POST 的 FormData,如第二个片段所示)的控制台输出中,我找不到任何数据。
我究竟做错了什么?