我正在用PHP來做一個相當原始的投票系統。用PHP創建一個簡單的投票系統
MySQL的PHP
while($row = mysql_fetch_array($query)): ?>
<div class="item" data-postid="<?php echo $row['id'] ?>" data-score="<?php echo $row['vote'] ?>">
<div class="vote-span"><!-- voting-->
//
<div class="vote" data-id="<?php echo $row['id']?>" data-action="up" title="Vote up">
//
<img src="//placekitten.com/10/10"/>
</div><!--vote up-->
<div class="vote-score"><?php echo $row['vote'] ?></div>
//
<div class="vote" data-id="<?php echo $row['id']?>" data-action="down" title="Vote down">
//
<img src="//placekitten.com/g/10/10"/>
</div><!--vote down-->
</div>
<div class="post"><!-- post data -->
<h2><?php echo $row['name']?></h2>
<p><?php echo $row['title'] ?></p>
</div>
</div><!--item-->
<?php endwhile?>
我主要集中在//
之間的文本。首先,我設置了兩個數據屬性,希望稍後用javascript來使用它們;我將data-action
設置爲up
或down
以判斷它是upvote還是downvote。我還將data-id
屬性設置爲我的MySQL表中的當前行ID密鑰。
通過我的邏輯,我可以通過javascript jquery並導致PHP代碼在單擊時執行,並在MySQL中正確的行中添加/減去數字。
我試過的Javascript只是或多或少爲expirement:
$('.vote').click(function(){
if ($(this).data('action')=='up'){
//PHP code here
}
});
不用說,沒有工作,因爲PHP和JavaScript不喜歡玩,因爲PHP是服務器端。接下來,我想我可以在我的Javascript條件中調用一個PHP函數 - 但似乎必須有一個更簡單的方法來完成我正在嘗試的操作。我一直在看很多教程,他們或者過時,或者針對其他項目。我檢查了一下,發現this question,但它的目的是允許IP有投票限制。 This question看起來類似於我在做什麼,除非我無法弄清楚他們是如何設置的,因爲他們沒有如何調用函數
TL; DR我的問題是調用PHP函數在div點擊,將數據放入MySQL行的正確ID。 AJAX似乎要走,但我不確定如何實現它。
您需要查看AJAX,以便在Javascript事件(如單擊)中向PHP腳本發出請求,傳入數據,然後獲取並顯示響應。 – thescientist
正如你所猜測的,javascript(客戶/瀏覽器)不能直接執行php,因爲它是服務器端的。基本上你需要使用ajax(javascript)向執行你想要的php腳本發出請求 –
我認爲AJAX只是針對PHP的異步內容,我是否也可以將特定於每列的變量傳遞給該PHP?我將如何設置? –