2011-03-31 96 views
0

我對PHP或任何C語言都很陌生。我一直在試圖用拇指替換Joomla評分系統,但我無法將其運用到工作中。

<?php 
$voteup = 0; 
$votedown = 0; 



?> 

<INPUT type="button" value="Vote Up" onClick="<?php echo $voteup++?>;"> 
<?php  echo $voteup; ?> 

它現在在瀏覽器中顯示1,單擊時不返回任何內容。它應該是另一種方式。爲什麼這些線路無效?我已經嘗試了其他一些格式,包括href = javascript和提交按鈕。

回答

1

您需要使用某種數據庫來存儲您的投票。

變量在頁面加載時不是持久的,所以你實際上做的是每次加載頁面時將變量設置爲0。

此外,您放入onClick的PHP代碼始終運行,因此您始終會增加$voteup

我建議你看看指南,比如「HOW-TO: Reddit-style Voting With PHP, MySQL And jQuery」,看看能否幫助你入門。

因爲您在Joomla工作,所以您需要以不同的方式訪問數據庫。要了解如何做到這一點,請查看「How to use the database classes in your script」。它有關於如何與Joomla數據庫層進行交互的簡短例子。然後,每當你找到一些特定於MySQL的代碼時,試着看看你是否可以將它移植到使用這些方法。

+0

這確實是一些開始。 PHP可以做什麼,不可以做什麼。期待統一的語言(最好的JavaScript和PHP)。 – 2011-03-31 13:33:07

+0

你好,thnx爲你回答。我已經仔細閱讀了該指南,並且這些文件在我的電腦上。問題是,大部分代碼都與數據庫相關,而Joomla可以使用Joomla標籤從其核心獲取這些代碼。我發現自己很難決定是否要將Reddit指南更改爲Joomla或編輯Joomla評級插件。到目前爲止都失敗了。 Joomla代碼執行一個完整的投票系統,只有PHP和約60行,而另一個使用很多代碼,因爲DB相關的東西(在J!中過時了嗎?)。我無法創造出這種交叉。 – 2011-03-31 13:50:17

+0

@Michael:您需要使用Joomla特定的數據庫層,但您應該可以像我鏈接的示例一樣進行操作。我添加了一個鏈接到Joomla文檔。嘗試按照該示例進行操作,並嘗試用適當的Joomla替換任何MySQL特定的調用。 – 2011-03-31 15:51:32

0

您在服務器端和客戶端混合起來,就被解析並通過服務器發送後的瀏覽器看到的代碼是一樣的東西:

<INPUT type="button" value="Vote Up" onClick="0"> 
1 

只是檢查源。

您將需要一個處理客戶端的JavaScript onClick處理程序,以便當有人單擊時,會向服務器發出請求以更新您的變量(需要按順序將其存儲在某處),並且用戶可以重新 - 轉到新的更新頁面,或者使用javascript更新當前頁面的內容。