Ajax发送数据,但php没有收到

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

问题: Ajax成功,我得到了成功消息,但PHP没有读取POST。 为什么?

我做了我的研究,我读了stackoverflow主题和其他网站,phpmanual,w3school示例的音调,但出了点问题。

基本的HTML示例:

我找到的基本ajax调用(发送):

 /* Attach a submit handler to the form */ $("#foo").submit(function(event) { /* Stop form from submitting normally */ event.preventDefault(); /* Clear result div*/ $("#result").html(''); /* Get some values from elements on the page: */ var values = $("#foo").serialize(); console.log("val: "+values); /* Send the data using post and put the results in a div */ $.ajax({ url: "ez.php", type: "POST", data: values, success: function(){ $("#result").html('Submitted successfully'); }, error:function(){ alert("failure"); $("#result").html('There is error while submit'); } }); }); 

如果我得到那些数据,那么简单的PHP用于测试

  

这三个文件都在同一个文件夹中。

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

提前致谢!

你怎么知道你的脚本没有收到数据?

将成功改为以下内容:

 success: function(data){ $("#result").html('Submitted successfully:' + data); }, 

您所做的就是说’如果收到响应而没有错误更新div’ – 您无法知道您的php脚本是否已经成功运行(它已经运行,因为您正在获得成功)或者当前没有。

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

试试上面的内容,让我们知道你是如何进行的

为了清晰

访问它们时,PHP脚本运行ONCE – 它们没有内存(除了固定变量,如$cheese = "yummy";

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

因此,直接访问脚本脚本即可

“哦 – 这是表演时间,对…..错误…..好吧 – 有人送我’酒吧’ – 不好意思,在这种情况下,我不会做if if声明里面的内容 – 我的工作结束 – 这里无事可做,我什么都不回来。

试试这个:

$_POST['bar'] to $_GET['bar'];更改$_POST['bar'] to $_GET['bar'];

然后转到脚本所在的URL并输入http://yoururl.com/script.php?bar=terrence

你会注意到你现在得到了一个响应,因为你传递了它想要返回的脚本,所以你在if语句中做了什么。

要保持数据,您需要存储到数据库或文本文件。

希望很清楚!

如果你在窗户上,请找Fiddler。 这是来自微软的免费数据包嗅探器。 它可以让你看到它们之间的内容。 您将能够看到套接字看到的来自浏览器的内容以及套接字从服务器接收的内容。

http://msdn.microsoft.com/en-us/library/bb250446%28v=vs.85%29.aspx#ie_introfiddler_topic2

对于你正在做的事情可能有点矫枉过正,但我​​认为拥有很好的调试工具总是好的。 它为您提供选择,并打开可能性。

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

我认为一切都是正确的,除非你从你的表单中传递任何值。只需要替换这段代码

 

我认为它会解决你的问题。并在js中添加更改这个小代码

形成

 success: function(){ $("#result").html('Submitted successfully'); }, 

 success: function(result){ $("#result").html('Submitted successfully'+result); },