3

我已经有 3 年没有设计网站了,所以至少可以说我很生疏。我必须依靠 Dreamweaver CS5 来帮助我。对...

我想要一个新闻页面,用户/客户将从下拉菜单中选择日期(1 月、2 月、3 月、4 月等)现在,我的 mySQL 数据库中有一个名为“新闻”的表,其中每一行由这些日期引用。我已经为日期设置了一个动态列表(一个下拉列表。)

我想要的是让客户从下拉列表中选择日期,并将结果显示在下面的记录集中。我假设 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”。有一个名为“submit”的按钮可以提交表单。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 回答
0
$select = $_POST['dropdowndate'];
$sql = "SELECT * FROM table WHERE attribute = '$select'" or die (mysql_error());
于 2016-11-04T04:47:55.423 回答