【发布时间】:2015-08-31 17:51:40
【问题描述】:
所以我在这里发布我的第一个 PHP 函数,我为之感到自豪,但我最近才了解 AJAX 并想对其进行测试。不幸的是,我无法让它工作。
我的经验: PHP(3 周)。 CSS3、HTML、基本 Javascript。
我的问题:让 AJAX 工作。我希望 ajax 从我的测试服务器(Xampp)数据库中获取投票的 php 文件中获取我的数据。所以每次用户点击好或坏的 AJAX 都应该在不刷新页面的情况下显示新的结果。然而问题是: A) 我的 if 语句通过检查 isset($_POST) 来工作,如果我通过 AJAX 调用它就不再工作了。 B) 防止刷新。 C) 每次点击后进行 AJAX 更新。我知道我快到了,我只是错过了一些东西,老实说我不知道到底是什么。
我尝试了什么:检查了我的数据库连接。检查我的 php 代码是否在没有 ajax 的情况下工作并且它做得非常好(为了简单起见,我在这里只显示了一半的功能,一个 lite 版本)。试图更改提交到按钮。缓存清除。 Jquery 在我的文档的头部,路径是正确的。观看了教程并阅读了文档,但我只是没有去任何地方,可能是由于缺乏经验。
编辑:会话和一切 php 工作正常。我的会话开始和数据库连接包含在最顶部。
总结:如何修复此 ajax 以便它始终更新我的数字?
如果您希望我解释我的部分 php 代码,请告诉我。如有必要,我愿意评论这些部分。
JQUERY / AJAX 代码
function vote() {
var request = $.ajax({
url: "php/core/voting_system.php",
type: "POST",
dataType: 'html'
});
request.done(function(vote_sum) {
$("#votes").html(vote_sum);
});
}
HTML 代码:
<div id='votes'></div>
<form id="good" action="" method="post">
<input type="submit" name="good" onclick="vote()" value="+">
</form>
<form id="bad" action="" method="post">
<input type="submit" name="bad" onclick="vote()" value="-">
</form>
【问题讨论】:
-
因为您正在检查 POST 数组中的特定内容并且您的 AJAX 没有将任何内容传递给 PHP,所以您没有得到结果。 Have a look at this.
-
@JayBlanchard 我想我什至删除了一次 if 语句。结果是一样的。它更新了一次,但没有第二次。
-
这些语句,
isset($_POST['bad']和isset($_POST['good']将永远处理,因为您没有通过 AJAX 向 PHP 脚本发送任何内容。您的 AJAX 请求中没有data:属性。 Open your browser's console to see what is going on. -
看起来您还没有在 PHP 中启动会话。
-
@JayBlanchard 我实际上是通过包含完成的。 Session(start) 是我设置的第一件事。我测试了代码的所有 php 端,它可以工作。