我有一个用PHP和Javascript / jQuery构建的小型Web应用程序。
该应用程序涉及一个随机数生成器,当它落在第4位时,用户获胜。
然而,奖品是从数据库中提取的,每天赢得5个奖项。用户无法获胜。
一旦用户获胜,奖品将更新为“排队”,直到他们填写表格并领取奖品为止。然后从可用的奖品中取出。
如果用户刷新应用程序,这一切都正常。但是,如果用户开始播放应用程序并且另一个用户获胜,那么应用程序将不会更新,除非它因为PHP是服务器端而刷新。
我有一个javascript函数OnStart。因此,如果我可以在这里执行SQL查询,那么每次用户抛出骰子时都会发生这种情况。
如何从jquery函数运行php语句?
如果有帮助的话是声明:
$result = mysql_query("SELECT * FROM prizes WHERE dateavailable='$todayDate' AND queue='0' AND won='0' ORDER BY id ASC LIMIT 1");
while($row = mysql_fetch_array($result))
{
$prize = $row['prize'];
}
由于
编辑:
所以我可以在单独的文件中使用这样的东西。
<script type="text/javascript">
function performAjaxSubmission() {
$.ajax({
url: 'file.php',
method: 'POST',
data: {
action: 'save',
arg1: 'val1',
arg2: 'val2'
},
success: function() {
alert("success!");
}
});
return false; // <--- important, prevents the link's href (hash in this example) from executing.
}
jQuery(document).ready(function() {
$("#linkToClick").click(performAjaxSubmission);
});
</script>
答案 0 :(得分:1)
将发布的代码保存在php文件中,我们称之为prizes_available.php
。此文件还应输出奖品是否可用,因此请创建结果对象并为其指定值:
$result = new stdclass();
$result->prizes_available = $prize != null;
echo json_encode($result);
如果您在浏览器中调用此脚本,它将输出如下内容:
{ prizess_available: true }
使用jQuery,您可以轻松地将此字符串再次转换为对象:
$.getJSON('prizes_available.php', function(result) {
if (!result.prizes_available) {
alert('no more prizes');
}
});
答案 1 :(得分:0)
你必须使用AJAX,jQuery包含一些易于使用的函数来处理AJAX。
用法很简单,您可以在docs.jquery.com
中了解相关信息如果你想将一些数组传递给你的js脚本,那么在jQuery中查找JSON函数($.getJSON
,在PHP中查找json_decode
/ json_encode
)