2012-04-24 31 views
1

我有一個使用PHP和Javascript/jQuery構建的小型web應用程序。從javascript數據庫中選擇javascript調用

該應用程序涉及一個隨機數字發生器,當它登陸說數字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']; 
} 

感謝

編輯:

所以我可不可以用這樣的事情,在一個單獨的文件中的PHP。

<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> 
+1

你需要尋找到jQuery的AJAX功能。 – Lowkase 2012-04-24 13:25:06

+0

不要忘記保護您的數據免受SQL注入。 – 2012-04-24 13:29:57

+0

所以如果一個用戶贏了,他還能玩還是再贏? – Joseph 2012-04-24 13:32:04

回答

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'); 
    } 
}); 
+0

謝謝!這很好。有沒有辦法,我可以將來自SELECT查詢的變量傳回到我打電話的頁面中? – 2012-04-24 14:21:38

+0

是的,您可以將它們全部添加到數組中,然後將數組賦給'$ result'對象。 – Yogu 2012-04-24 15:26:03

+0

我設法解決這個問題。感謝您的所有幫助。 – 2012-04-24 15:37:52

0

您必須使用AJAX,jQuery包含一些使用AJAX的簡單易用的函數。

用法很簡單,你可以看到,在docs.jquery.com

如果你想通過一些數組的js腳本,尋找JSON函數(jQuery中$.getJSON,在PHP json_decode/json_encode

+0

我已經編輯了這個問題。我可以使用類似的東西嗎? – 2012-04-24 13:37:17

+1

是的,我就是你需要的東西。試着根據你的需求來改變它,如果它不起作用,我(我們)會幫助你。 (抱歉我的英語,希望你能理解我:) – MireSVK 2012-04-24 13:44:02