我刚开始学习PHP,一直在尝试建立一个网站来学习。我在这里找到了一个在互联网上旋转文本的javascript脚本,看起来像:
<script language="JavaScript">
function rotateEvery(sec)
{
var Quotation=new Array()
// QUOTATIONS
Quotation[0] = 'First quotation';
Quotation[1] = 'Second quotation';
Quotation[2] = 'Third quotation';
Quotation[3] = 'Fourth quotation';
Quotation[4] = 'Fifth quotation';
Quotation[5] = 'Sixth quotation';
Quotation[6] = 'You can add <b>as many</b> quotations <b>as you like</b>';
var which = Math.round(Math.random()*(Quotation.length - 1));
document.getElementById('textrotator').innerHTML = Quotation[which];
setTimeout('rotateEvery('+sec+')', sec*1000);
}
</script>
我还有一个名为events的数据库表,它有三个字段(id,when,tag)when是日期,tag是事件的描述(例如,我家的圣诞派对/万圣节)。
我想做的是选择今天发生的事件,并将它们随机放在我的javascript旋转器中。
这可能吗?我将如何着手实施这一点?我知道我真的不善于解释我的问题,所以如果我遗漏了更多的细节,如果你能告诉我,我可以帮忙的话。谢谢
因此,如果我理解您的意图,您希望从数据库中提取事件,并将其传递到页面上的JavaScript中,以便在旋转器中使用:
在您的PHP中
使用您已经使用的MySQL API来执行查询。使用旧的mysql_*()
函数如下所示。(注意:实际上不建议使用mysql_*()
函数,但似乎最有可能的是您当前正在使用的函数。如果发现其他情况,我会更新…)
// Assuming `when` is a real DATE or DATETIME data type in MySQL...
// compare to CURDATE() to get today's
$result = mysql_query("SELECT tag FROM events WHERE DATE(when)=CURDATE()");
if ($result) {
// array to hold all the output
$events = array();
while ($row = mysql_fetch_assoc($result)) {
// Add the event to your array
$events[] = $row['tag'];
}
// After building the array, encode it as JSON
// Later you'll echo this into your JavaScript in place of the array...
$events = json_encode($events);
}
稍后在HTML/JavaScript输出中
将JSON字符串(数组)输出到页面上的JavaScript中:
function rotateEvery(sec)
{
// The JSON from PHP output here
// Would look something like
// ["Event 1","Event 2","Event 3"]
var Quotations = <?php echo $events; ?>;
var which = Math.round(Math.random()*(Quotation.length - 1));
document.getElementById('textrotator').innerHTML = Quotation[which];
setTimeout('rotateEvery('+sec+')', sec*1000);
}