2011-03-31 56 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更新当前页面的内容。