首页 >后端开发 >php教程 >为什么我的 jQuery 序列化表单不将数据发送到我的 PHP 脚本?

为什么我的 jQuery 序列化表单不将数据发送到我的 PHP 脚本?

Barbara Streisand
Barbara Streisand原创
2024-11-02 22:25:03528浏览

Why is my jQuery serialized form not sending data to my PHP script?

使用 jQuery 和 PHP 序列化并提交表单

问题:

序列化的表单使用 jQuery 无法将数据发送到 PHP 脚本。服务器没有收到数据。

HTML 表单:

`




`

JavaScript:

<code class="javascript">$("#contactForm").submit(function() {
  $.post("getcontact.php", $("#contactForm").serialize())
    .done(function(data) {
      // handle response
    });

  return false;
});</code>

服务器端 PHP (getcontact.php):

<code class="php">$nume = $_REQUEST["nume"]; // empty
$email = $_REQUEST["email"]; // empty
$telefon = $_REQUEST["telefon"]; // empty
$comentarii = $_REQUEST["comentarii"]; // empty</code>

解决方案:

将 jQuery.post() 代码替换为以下内容:

<code class="javascript">var datastring = $("#contactForm").serialize();
$.ajax({
  type: "POST", // method
  url: "your url.php", // action
  data: datastring, // form data
  dataType: "json", // expected response type
  success: function(data) {
    // handle response
  },
  error: function() {
    // handle error
  }
});</code>

附加说明:

  • 将 dataType 设置为“jsonp” " 用于跨域请求。
  • 对请求前和请求后操作使用 beforeSend 和完成回调。
  • 考虑对同步请求使用 async: false。
  • 禁用缓存 with cache: false。
  • 更多详细信息请参阅官方文档。

更新

  • var_dump($_POST ) 应返回一个空数组。
  • 问题可能与服务器相关,例如 PHP.ini 文件配置错误或禁用文件上传。

以上是为什么我的 jQuery 序列化表单不将数据发送到我的 PHP 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn