Ajax发送数据,但php不接收

Ajax发送数据,但php不接收,php,jquery,ajax,post,send,Php,Jquery,Ajax,Post,Send,虽然我还在读Nicholas C.Zakas的书,在4天内阅读了300多页,但与此同时,我有一个小项目,为我们后来的大项目创建一个半自动化的文档生成器页面。这已经完成了一半,但现在我想为它提供更多功能,这需要我将textareas的值发送到PHP,这样PHP就可以更新mysql和vica,但现在不是这个问题 问题是:Ajax成功了,我收到了成功消息,但是PHP没有阅读文章。为什么? 我做了研究,阅读了stackoverflow主题和其他网站、PHP手册、W3学校的例子,但有些地方出了问题 基本h

虽然我还在读Nicholas C.Zakas的书,在4天内阅读了300多页,但与此同时,我有一个小项目,为我们后来的大项目创建一个半自动化的文档生成器页面。这已经完成了一半,但现在我想为它提供更多功能,这需要我将textareas的值发送到PHP,这样PHP就可以更新mysql和vica,但现在不是这个问题

问题是:Ajax成功了,我收到了成功消息,但是PHP没有阅读文章。为什么?

我做了研究,阅读了stackoverflow主题和其他网站、PHP手册、W3学校的例子,但有些地方出了问题

基本html示例: 简单的PHP测试,如果我得到的数据或没有 这三个文件都在同一个文件夹中

我肯定以后会越来越深入地了解这个话题,现在我需要尽快完成这个小项目。我将成为前端开发人员,因此php部分不会等待我,但现在我需要它进行测试,直到我可以与服务器端程序员交谈。我想确定我将向他发送哪些变量和数据,以便他以后可以处理它们


提前谢谢

您如何知道您的脚本没有收到数据

将success更改为以下内容:

success: function(data){
        $("#result").html('Submitted successfully:' + data);
    },
您所做的只是说“如果收到响应时没有错误,请更新div”-您无法知道您的php脚本是否已成功运行,它是否已运行,因为此时您是否正在获得成功

通过函数中的“数据”,您可以查看脚本是否传回了信息

试试上面的方法,让我们知道你进展如何

为了清楚起见

当您访问PHP脚本时,它们只运行一次——它们除了$cheese=yummy等固定变量之外没有内存

即使在运行脚本之后,在访问页面时也无法看到响应的原因是它有点愚蠢,并且不记得您运行过它

因此,直接访问脚本脚本将继续

“哦,现在是演出时间,对吧……呃……好吧——那个人给我发了‘酒吧’——没有 好吧,在这种情况下,我不会做if声明中的事情——我的工作结束了——这里什么都不做,我不会发回任何东西。”

试试这个:

将$_POST['bar']更改为$_GET['bar']

然后转到脚本所在的URL并键入

您会注意到,现在您得到了一个响应,因为您传递了脚本希望返回true的内容,因此执行if语句中的操作

要使数据持久化,需要将其存储到数据库或文本文件中


希望这是清楚的

如果你在windows上,找Fiddler。这是微软提供的免费数据包嗅探器。它会让你看到两者之间的区别。您将能够看到套接字从浏览器看到了什么,以及套接字从服务器收到了什么

对于您正在做的事情来说,这可能有点过头了,但我认为拥有伟大的调试工具总是好的。它为你买来了选择,并开启了可能性


还有其他人在那里。而且我确信也有nix工具可用。

我认为一切都是正确的,除了您不能从表单中传递任何值。只需替换此代码即可

<form id="foo">
   <label for="bar">A bar</label>
   <input id="bar" name="bar" type="text" value="something" />
   <input type="submit" value="Send" />
</form>


为什么您认为PHP没有收到这些值?你的Javascript从来不会对结果做任何事情。你应该检查你的网络选项卡,看看,因为如果刷新,我会得到一个空白页面。Ajax发送邮件后,它应该发送邮件,不是吗?我的意思是,如果刷新php,我不应该看到结果吗?您的php脚本在调用时只返回一些内容,没有存储任何dataWolff,我现在检查了它!挂起然后ajax发送数据,然后在php页面上,挂起然后刷新网络选项卡,帖子消失。这就好像它得到了数据,但页面仍然是空白的。我尝试了:我将Norbert添加到框中,得到了:提交成功:hello Norbert。基本上我不明白的是为什么我不能在php文件中看到这个结果hello Norbert:所以,因为我们想稍后再使用它,或者上传到mysql,或者其他东西。。我只是假设如果$\u POST['bar']可以工作,echo就会将它打印到浏览器上。@pianist$\u POST['bar']等于'Norbert',你怎么会认为它不工作?编辑:为什么它应该等于:你好,诺伯特???也许我们彼此误解了!:也许我应该改变对问题的描述。我不想从php文件接收数据,我知道怎么做。我现在要做的是将数据提供给php文件来处理这些数据。@ThePianist,但这已经是您正在做的事情了,使用ajax将值从html表单传递给php脚本。现在,如果需要存储这些数据,应该使用数据库服务器side@ThePianistGET和POST只是传递数据的方法,在服务器端处理传递的数据并不依赖于所使用的方法。您也可以使用GET来存储在数据库中。如果您不想关心所使用的方法,您仍然可以使用 $\u将处理这两种情况的请求[]
<?php

   if(isset($_POST['bar']))
   {
       echo "hello " . $_POST['bar'];
   };

?>
success: function(data){
        $("#result").html('Submitted successfully:' + data);
    },
<form id="foo">
   <label for="bar">A bar</label>
   <input id="bar" name="bar" type="text" value="something" />
   <input type="submit" value="Send" />
</form>
success: function(){
    $("#result").html('Submitted successfully');
},
success: function(result){
    $("#result").html('Submitted successfully'+result);
},