动态更改PHP变量

时间:2010-08-16 04:28:03

标签: javascript ajax

我有一个网站从数据库中抓取一个随机条目并为查看器显示它。这是我目前使用的代码:

$rows = "SELECT * FROM xxx";
$rows1 = mysql_query($rows);
$rows2 = mysql_numrows($rows1);
$id= rand(1, $rows2);

这会生成一个ID号,用于选择相应的数据库条目,当然还有更多的php显示该条目。

为了让用户从数据库生成新条目,他们点击一个按钮,使用以下代码刷新页面:

<form>
<input type=button value="Show me another one" onClick="window.location.reload()">
</form>

这样可以正常使用,但这会导致Google Adsense出现问题;它会导致Adsense记录来自给定个人用户的大量页面展示次数。我没有与谷歌有任何关于它的信件,但它看起来像我正在为支付“每次展示”的广告商游戏系统。我担心这会导致Google自动阻止我从“每次展示”广告中获得收入,并可能导致我的Adsense帐户被撤销。

所以我的问题是如何制作一个按钮,在不刷新页面的情况下从数据库中提取不同的条目?基本上,我需要找到一种方法来在用户单击按钮后更改“$ id”变量。

1 个答案:

答案 0 :(得分:2)

你有几种方法可以实现你想要做的事情。

如果你想保持HTML和PHP,你可以通过在你的页面中有一个IFRAME来解决你的问题,里面有你的重装按钮。当然,您不会在IFRAME打开的页面中插入Google跟踪器。您可以使用一点CSS隐藏IFRAME不良的默认样式,因此它不会突出您现有的页面。

然而,这远不是处理这个问题的最佳方式。

你应该按照deceze的建议,使用Ajax通过Javascript动态获取新信息。为了尽可能轻松地处理这个问题,我建议你选择一个Javascript框架,将所有恼人的跨浏览器位留给它。

例如,使用jQuery,您可以执行以下操作(HTML + javascript)

<!-- new content will appear in the div down below -->
<div id="content-target">
</div>

<form>
  <input type="button" id="refresher" />
</form>

<script type="text/javascript">
  $('#refresher').click(function(){
    $('#content-target').load('generator.php');
    return false;
  });
</script>

你应该花一些时间学习JS框架。这是一项非常好的投资。

对于jQuery:http://jquery.com/

原型:http://www.prototypejs.org/

MooTools:http://mootools.net/

道场:http://www.dojotoolkit.org/(对这种剧本来说过分杀人)