【发布时间】:2014-01-23 18:25:44
【问题描述】:
虽然我还在读 Nicholas C. Zakas 的书(在 4 天内阅读了 300 多页),同时我有一个小项目来为我们以后的大项目创建一个半自动化的文档生成器页面.它已经完成了一半,但现在我想为其提供更多功能,这需要我需要将 textareas 的值发送到 PHP,以便 PHP 可以更新 mysql,反之亦然,但现在不是问题。
问题: Ajax 成功,我收到成功消息,但 PHP 没有读取 POST。为什么?
我进行了研究,我阅读了 stackoverflow 主题和其他网站、phpmanual、w3school 示例的音调,但出了点问题。
基本 html 示例:
<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>
我为此找到的基本 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
if(isset($_POST['bar']))
{
echo "hello " . $_POST['bar'];
};
?>
所有三个文件都在同一个文件夹中。
我以后肯定会越来越深入地了解这个话题,只是现在我需要尽快完成这个小项目。我将成为前端开发人员,所以 php 部分不会等我,但现在我需要它进行测试,直到我可以与服务器端程序员交谈。我想确定将哪些变量和数据发送给他,以便他稍后处理。
提前致谢!
【问题讨论】:
-
为什么你认为 PHP 没有收到这些值?你的 Javascript 永远不会对结果做任何事情。
-
您应该检查您的网络标签并查看
-
因为如果刷新我会得到一个空白页。在 Ajax 发送它应该发送的 POST 之后,不是吗?我的意思是如果刷新 php,我不应该看到结果吗?
-
你的 PHP 脚本在调用时只是返回一些东西,而不是存储任何数据
-
沃尔夫,我现在检查了!等待然后ajax发送数据,然后在php页面上,等待然后刷新网络选项卡并且帖子消失。就像它得到了数据,但页面仍然是空白的。