AJAX从php文件

时间:2016-12-08 18:11:42

标签: javascript php jquery ajax

我有一个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);

最初在数据阵列中发送的数据是名称:Bob
预期回报是1或0,但我接受了名字:鲍勃回来。

1 个答案:

答案 0 :(得分:2)

好的,问题是你必须在data中实际传递它。你这样做:

$.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

序列化表单数据后,您可以将其作为附加值添加。