我有一个网站从数据库中抓取一个随机条目并为查看器显示它。这是我目前使用的代码:
$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”变量。
答案 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/(对这种剧本来说过分杀人)