3

私は約 3 年間ウェブサイトを設計していないので、控えめに言ってもかなり錆びています。私を助けるために、Dreamweaver CS5 に頼らなければなりません。右...

ニュースのページが必要で、ユーザー/顧客はドロップダウン メニューから日付 (1 月、2 月、3 月、4 月など) を選択します。これらの日付によって参照されます。日付の動的リスト (ドロップダウン リスト) を既に設定しています。

私が望むのは、顧客がドロップダウンから日付を選択し、結果がその下のレコードセットに表示されるようにすることです。SQL クエリは、次の行に沿って何かを記述する必要があると想定しています。

SELECT date, subject, message FROM news WHERE date = $ XXXXXDROPDOWNLIST XXX $

ご覧のとおり、どのように機能するかがよくわからないため、最後のラインナップを作成しました。ドロップダウン リストは POST する形式にする必要があり、結果のテーブルは GET する形式にする必要があると考えています。

私よりも技術的な人が私のディレマを教えてくれませんか?

ありがとう、ロブ。

コード

mysql_select_db($database_rcc, $rcc);
$query_dropdowndate = "SELECT DATE_FORMAT(date, '%M %Y') AS FORMATTEDDATE FROM news GROUP BY FORMATTEDDATE ORDER BY Date DESC  ";
$dropdowndate = mysql_query($query_dropdowndate, $rcc) or die(mysql_error());
$row_dropdowndate = mysql_fetch_assoc($dropdowndate);
$totalRows_dropdowndate = mysql_num_rows($dropdowndate);

mysql_select_db($database_rcc, $rcc);
$query_newsitems = "SELECT `Date`, Subject, Message FROM news WHERE date = $_POST['dropdowndate']";
$newsitems = mysql_query($query_newsitems, $rcc) or die(mysql_error());
$row_newsitems = mysql_fetch_assoc($newsitems);
$totalRows_newsitems = mysql_num_rows($newsitems);
?>



<form id="choosedate" name="choosedate" method="post" action="#">
  <label for="dropdowndate"></label>
  <select name="dropdowndate" id="dropdowndate">
    <?php
do {  
?>
    <option value="<?php echo $row_dropdowndate['FORMATTEDDATE']?>"<?php if (!(strcmp($row_dropdowndate['FORMATTEDDATE'], $row_dropdowndate['FORMATTEDDATE']))) {echo "selected=\"selected\"";} ?>><?php echo $row_dropdowndate['FORMATTEDDATE']?></option>
    <?php
} while ($row_dropdowndate = mysql_fetch_assoc($dropdowndate));
  $rows = mysql_num_rows($dropdowndate);
  if($rows > 0) {
      mysql_data_seek($dropdowndate, 0);
      $row_dropdowndate = mysql_fetch_assoc($dropdowndate);
  }
?>
  </select>
  <input type="submit" name="submit" id="submit" value="Submit" />
</form>
<p>&nbsp;</p>
<form id="form1" name="form1" method="get" action="">
  <table border="0" cellpadding="5" cellspacing="2">
    <tr>
      <td>Date</td>
      <td>Subject</td>
      <td>Message</td>
    </tr>
    <?php do { ?>
      <tr>
        <td><?php echo $row_newsitems['Date']; ?></td>
        <td><?php echo $row_newsitems['Subject']; ?></td>
        <td><?php echo $row_newsitems['Message']; ?></td>
      </tr>
      <?php } while ($row_newsitems = mysql_fetch_assoc($newsitems)); ?>

これのいくつかは奇妙に見えるかもしれないので説明させてください... 動的リスト (ドロップダウン) は「dropdowndate」と呼ばれ、フォームは「choosedate」と呼ばれます。FORMATTEDDATE は、ドロップダウン メニューに動的リストを提供するレコードセットに付けられた名前です。

私が言及したように、ユーザーのPOST時にその動的リストの値をクエリに挿入したい... SELECT Date, Subject, Message FROM news WHERE date = $_POST['dropdowndate']"; (これはおそらく間違っています)

ロブ

4

4 に答える 4

1
SELECT date, subject, message FROM news WHERE date = $_POST['fieldvalue']

$ _POST変数には、フォームが投稿されたときに送信されるすべてのデータが含まれます。フィールド値は、選択フィールドに付けた名前に対応している必要があります。

これは注入の可能性があるため、適切なセキュリティ対策を講じることを確認してください。

更新せずにデータを取得したい場合は、AJAXを使用する必要があります。以下はそれを美しく説明していますhttp://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using -jquery /それについてさらに情報が必要な場合は、質問してください。

于 2012-06-22T21:50:22.880 に答える
0

HTMLドロップダウンの例

<form method="POST">
<select name="animal">
    <option value="dog">Dog</option>
    <option value="cat">Cat</option>
</select>
</form>

PHPで情報を取得する方法の例

<?php
    echo $_POST['animal'];
?>
于 2012-06-22T21:46:55.507 に答える
0

ユーザーがドロップダウンから何かを選択したときにレコードをロードしますか、それともページとともにロードしますか?

最初のケースでは、レコードをバックグラウンドで実行するために Ajax を使用する必要があります。

それ以外の場合は、ページの読み込み時に投稿したようなステートメントを実行できます。

于 2012-06-22T21:51:03.533 に答える