我正在尝试创建一个ajax脚本来自动刷新用户在我的网站上的游戏内金额,但是,它无法正常工作。 我对ajax不是很好,所以我肯定做错了什么,如果有人能帮助我的话,我会高兴欣赏它。
这是我的代码:
的Javascript
<script type="text/javascript">
(function($) {
$.ajaxSetup({
cache: false,
beforeSend: function() {
$('#money').show();
},
complete: function() {
$('#money').show();
},
success: function() {
$('#money').show();
});
var $container = $("#money"); $container.load("challenges.php?money=<?php echo $_SESSION['Money'];?>");
var refreshID = setInterval(function() {
$container.load("challenges.php?money=<?php echo $_SESSION['Money'];?>");
}, 1000);
});
})(jQuery);
</script>
PHP部分
<?php
echo "<div id='money'>Balance: $".$_SESSION['Money']." ||</div> ";
?>
$_SESSION['Money']
等于用户的金额。
我一直坐着试图解决这个问题。如果您需要更多信息,请告诉我。我想这样做,以便用户不需要刷新页面以查看其余额。我尝试按照教程进行部分练习,但是我迷路了,我对ajax真的不好。任何帮助都是非常感激的。
答案 0 :(得分:3)
$.load()
可以使用可选的回调参数,请参阅http://api.jquery.com/load/
你可能想这样做:
(function($) {
var $container = $("#money");
function do_load(){
$container.load("challenges.php?money=<?php echo $_SESSION['Money'];?>", function(){
// show the container when loading is complete
$container.show();
});
}
do_load();
var refreshID = setInterval(do_load, 1000);
})(jQuery);
完全重写并假设PHP将返回JSON:
HTML:
Balance: <span id="money"></span>
JS:
(function($) {
var $container = $("#money");
function do_load(){
$.ajax({
method: "POST",
url: "challenges.php?money=<?php echo $_SESSION['Money'];?>",
}).done(function(data) {
// write the value of balance to the container
console.log("Server returned:", data);
$container.html(data);
}).error(function( jqXHR, textStatus, errorThrown ){
console.log("Server returned an error:", textStatus, errorThrown );
console.log("jqXHR:", jqXHR);
});
};
do_load();
var refreshID = setInterval(function(){
do_load();
}, 1000);
})(jQuery);
PHP:
<?php
// @TODO: fill your session variable (from a file / database / ...)
$_SESSION['Money'] = rand(0, 100000);
echo $_SESSION['Money'];
?>