在javascript调用中从mysql数据库中选择

时间:2012-04-24 13:21:39

标签: php javascript jquery mysql ajax

我有一个用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>

2 个答案:

答案 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