The*_*ist 0 php ajax jquery post send
虽然我还在阅读Nicholas C. Zakas的书(在4天内阅读了300多页),但同时我还有一个小项目,为我们后来的大项目创建一个半自动化的文档生成器页面.这已经完成了一半,但现在我想给它提供更多的功能,这需要我将textareas的值发送给PHP,因此PHP可以更新mysql而反之亦然,但现在不是问题.
问题: Ajax成功,我得到了成功消息,但PHP没有读取POST.为什么?
我做了我的研究,我阅读了stackoverflow主题和其他网站,phpmanual,w3school示例的音调,但出了点问题.
<form id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
<div id="result"></div>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="script.js"></script>
Run Code Online (Sandbox Code Playgroud)
/* 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');
}
});
});
Run Code Online (Sandbox Code Playgroud)
<?php
if(isset($_POST['bar']))
{
echo "hello " . $_POST['bar'];
};
?>
Run Code Online (Sandbox Code Playgroud)
这三个文件都在同一个文件夹中.
我肯定会在以后更深入地了解这个话题,我现在需要尽快完成这个小项目.我将成为前端开发人员,所以php部分不会等我,但现在我需要它进行测试,直到我可以与服务器端程序员交谈.我想确定哪些变量和数据会发送给他,以便他以后可以处理.
提前致谢!
你怎么知道你的脚本没有收到数据?
将成功改为以下内容:
success: function(data){
$("#result").html('Submitted successfully:' + data);
},
Run Code Online (Sandbox Code Playgroud)
您所做的只是说'如果收到响应而没有错误更新div' - 您无法知道您的php脚本是否已经成功运行(它已经运行,因为您正在获得成功)或者目前没有.
通过函数中的"数据",您可以查看脚本是否已传回信息.
试试上面的内容,让我们知道你是如何进行的
为了清晰
访问它们时,PHP脚本运行ONCE - 它们没有内存(除了固定变量之外) $cheese = "yummy";
您访问该页面时无法看到响应的原因(即使在运行您的脚本之后)是因为它有点愚蠢并且不记得您运行它.
因此,直接访问脚本是脚本
"哦 - 这是表演时间,对吧.....错误.....好吧 - 让这个人发给我'酒吧' - 在那种情况下不好意思我不会做if if声明里面的内容 - 结束我的工作 - 这里无事可做,我什么都不回来.
试试这个:
更改 $_POST['bar'] to $_GET['bar'];
然后转到脚本所在的URL并输入http://yoururl.com/script.php?bar=terrence
你会注意到你现在得到了一个响应,因为你传递了它想要返回的脚本,所以在if语句中做了什么.
要保持数据,您需要存储到数据库或文本文件.
希望很清楚!