我有一个 php 文件来验证表单,其中包含需要通过 ajax 发送的数据。 我从php文件收到的数据没有改变,我怎样才能收到正确的数据? main.js
$("#PersonForm").submit(function()
{
var data = $("form").serializeArray();
$.ajax({
type:"post",
url:"main.php",
act: 'validate',
datatype:"json",
data:data,
function(data){
console.log(data);
}});
return false;
});
main.php
else if ($_REQUEST['act'] == 'validate')
{
$validateData = array();
if (preg_match("[A-Za-z]{3,20}$/",$_REQUEST['name'])){
$validateData['name'] = 1;
}else{
$validateData['name'] = 0;
}
echo json_encode($validateData);
数据数组中最初发送的数据是 name:Bob
预期返回是 1 或 0,但我收到了 name:Bob 回复。
最佳答案
好吧,问题是您必须在数据
中实际传递它。你正在这样做:
$.ajax({
type:"post",
url:"main.php",
act: 'validate', // <--- THIS IS WRONG
datatype:"json",
data:data, // <--- IT SHOULD BE IN THIS
function(data){
console.log(data);
}
});
它必须位于要传递的 data
变量中。您将其用作 jQuery ajax()
方法的一个选项,但该方法不起作用。
var data = $("form").serializeArray();
data.push({name: 'act', value: 'validate'});
// Then make ajax call here
序列化表单数据后,您可以将其添加为附加值。
关于javascript - AJAX 从 php 文件发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41046109/