0

私は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>

また、3 つのフィールド (id、when、tag) を持つ events というデータベース テーブルもあります。

私がやろうとしているのは、今日起こっているイベントを選択し、ランダムに JavaScript ローテーターに入れることです。

これは可能ですか?これを実装するにはどうすればよいですか?私は自分の質問を説明するのが本当に下手であることを知っているので、もし詳細を省略した場合は、教えていただければお手伝いできます.Thanks!

4

1 に答える 1

0

したがって、私があなたの意図を理解している場合は、データベースからイベントを取得し、それらをページのJavaScriptに渡して、ローテーターで使用する必要があります。

あなたのPHPで

クエリを実行するためにすでに使用しているMySQLAPIを使用します。古い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);
}
于 2012-07-13T01:42:05.607 に答える