javascript - AJAX 从 php 文件发布数据

标签 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);

数据数组中最初发送的数据是 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/

相关文章:

javascript - 如何通过 YouTube Api V3 获取视频时长以及如何仅获取音乐视频

javascript - Aurelia Validation - 验证多个复选框或 radio

php - 更新命令输出

php - 如何增加变量并在一系列页面上记录单选按钮的值?

javascript - 具有反射问题的片段着色器三.js

javascript - 如何在单击时关闭和打开侧边栏

php - 如何使用 node.js 和 php?

javascript - 如何根据范围内的窗口大小调整网格图 block 的大小

javascript - 以编程方式触发选择加载方法

jquery - woocommerce 变体 - 主题冲突问题