【问题标题】:AJAX PHP $_POST not workingAJAX PHP $_POST 不工作
【发布时间】:2017-11-08 15:44:02
【问题描述】:

我有一个很简单的问题,但我就是不知道为什么我的帖子不起作用。我过去做了很多,这就是为什么我不知道错误在哪里。请帮助我,这是我的 AJAX 代码:

$(function() {
  $("#btnSubmit").click(function(event) {
    event.preventDefault();
    var formData = $("formCI").serialize();   
    $.ajax({
      type     : "POST",
      url      : "formularioServer.php", 
      data     : formData,
      datatype : "json",
      async    : false
    })
    .done(function(data) {
      if(data != "success"){
        console.log(data);
      } else {
        alert("A ticket has been sent with your incident information to the CI-Hotline inbox");
        window.location = "formulario.php";
        console.log(data);
      }
    }); 
  });
});

我的部分 HTML:
<form name="formCI" id="formCI" action="formularioServer.php" method="POST" enctype="multipart/form-data" accept-charset="utf-8">

<button type="submit" name="btSubmit" id="btnSubmit" class="btn btn-default">


在服务器端,POST 总是带有错误消息:

<?php
if(!empty($_POST)) {
    echo "success";
} else {
    echo "failed";
}
?>

【问题讨论】:

  • 一目了然,您的问题可能出在 .serialize() 中,而且您将数据类型设置为 json 的事实,AFAIK .serialize() 与 JSON.strigify( )。 .serialize() 创建一个 URL 编码的字符串,如果我错了,请纠正我。我会从那里开始。
  • 你能扩展parts of your html吗?里面有输入框吗?如果它只有提交按钮,则该元素将不会通过 POST,因为您在单击事件上触发 ajax(不提交表单)。
  • @AntoniuLivadariu datatype 指的是 ajax 期望返回的内容。不是它发送的内容。
  • 您好,我的 HTML 有一个包含多个字段的标准表单,但我无法显示。
  • @Randall 哈哈抱歉我的大脑死了一秒钟,我将它与 contentType 混淆了,我仍然认为问题出在 .serialize() 上:c 另外,不应该是 dataType 吗?

标签: php jquery ajax post


【解决方案1】:
var formData = $("formCI").serialize(); 

这应该是

var formData = $("#formCI").serialize();

通过其 ID 获取正确的表单。

另外,serialize 不会将数据转换为 json,它只是将数据编码为用于提交的字符串,因此您必须从 AJAX 调用中删除 datatype : "json" 行。

【讨论】:

  • 很好地抓住了失踪的# 哈哈……我们怎么都错过了。同样,datatype: "json" 是 ajax 期望返回的。不是它发送的内容。
  • 哈哈,我们已经澄清了dataType 设置了 Javascript 期望从服务器返回什么,contentType 用于告诉服务器应该期望什么数据类型
  • 非常感谢! José A. Zapata,这解决了这个问题。我试图完成的是用 phpMailer 发送一封电子邮件,但它总是返回一个空响应,但现在它工作得很好。再次感谢。
  • 德普。是的,我混合了dataTypecontentType。我的错。
猜你喜欢
  • 2023-03-16
  • 2012-02-18
  • 1970-01-01
  • 2014-12-12
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
相关资源
最近更新 更多