如何连接html下拉菜单从mysql数据库中获取记录


How to connect the html drop down to fetch the records from mysql database

我正在为此而挣扎,请一些人帮忙。我不是html或php专家。

我创建了一个简单的网页,通过每次更改select语句,从mysql数据库中提取最近7天、10天等的记录。一直到这里都很好。但是每次更改select语句都很痛苦,相反,我想创建一个简单的下拉列表。

我添加了一个简单的下拉列表,其中包含日期列表,如1(表示一天的记录)、7-7天的记录等。一旦用户选择7,它就必须跳转到提取7天记录的查询,然后继续。但是我在这里做错了什么,我不能执行它。

这是我的代码

<!DOCTYPE html>
<html>
<head>
    <title>PHP</title>

</head>
<body>
<p>
    <select name="value">
        <option value="7">7</option>
        <option value="1">1</option>
    </select>
    <?php
    $dbh = mysqli_connect("","", "", "");
    if (!$dbh) {
        echo "Error: Unable to connect to mysqli." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
      print ("<h1>Metrics</h1>");
    print ("<table class='"hovertable'">'n");

    if($_POST['value'] == '7')
    {
        // query to get 7 records
        $select="select * from   table where  FROM_UNIXTIME(date)>= (NOW() - INTERVAL 7 DAY)";
    }
    else
    {
        // query to get 1 records
        $select="select * from   table where  FROM_UNIXTIME(date)>= (NOW() - INTERVAL 1 DAY)";
    }

    $result = $dbh->query($select);
    print "Total records :". ' '. $result->num_rows ;
    if ($result->num_rows > 0)
    {
        while ($row = $result->fetch_assoc())
        {
            // Capture each record
            $data = array('row'=>$row);
            print ("<tr>");
            print ("<td style='"white-space: nowrap'">  $ID</td>");
            print ("<td style='"white-space: nowrap'">  $department</td>");
            print ("<td style='"white-space: nowrap'">   $customername</td>");
            print ("<td style='"white-space: nowrap'">   $date</td>");
            print ("</tr>'n");

        }
    }
    else
    {
        echo "0 results";
    }


    exit;
    ?>

    $dbh->close();

</p>
</body>
</html>

我看到您在这里检查用户发布的值:

$_POST['value']

但我没有看到你在哪里以及如何将这个值发布到页面上。也许你需要一个表格和一个提交按钮来发布所选值:

<form action="youpage.php" method="post">
  //your dropdown code here
  <input type="submit" value="Submit">
</form>

您可以通过表单或JavaScript发布select的值。

使用一个表单看起来像:

<form method="post">
    <select name="value">
      <option value="7">7</option>
      <option value="1">1</option>
    </select>
    <input type="submit" value="go" />
</form>

使用JavaScript

<form method="post" >
    <select name="value" onchange="this.form.submit()">
      <option value="7">7</option>
      <option value="1">1</option>
    </select>
</form>

如果您不想重新加载整个页面,则需要将查询和表分离或复制到另一个PHP页面中,并使用XHR提交表单。

更新为包含一个创建选择选项的函数。

<?php
Function ddform_Interval($array) {
  // generates the dropdown selects based on values in array
  $result = "";
  $post = 1; // default post value
  IF (isset($_POST['value'])) { 
   // validate the post value. It must match a value in array
   IF (in_array($_POST['value'], $array)) { $post = $_POST['value']; }
  }
  Foreach($array as $value) {
    IF ($post == $value) { $result .= "<option selected value='"".$value."'">".$value."</option>";
    }ELSE{ $result .= "<option value='"".$value."'">".$value."</option>";
    }
  }
  return $result;
}
$allowed_postvals = array('1', '7'); // add more values to add select options
$result = "";
$dbh = mysqli_connect("","", "", "");
if (!$dbh) {
  echo "Error: Unable to connect to mysqli." . PHP_EOL;
  echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
  echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
  exit;
}
// set & validate post value
IF (isset($_POST['value'])) { 
  IF (in_array($_POST['value'], $allowed_postvals)) { $postvalue = $_POST['value']; }ELSE{ $postvalue = '1'; }
}ELSE{ 
  $postvalue = 1; 
}
$query = "SELECT * FROM table WHERE FROM_UNIXTIME(date)>= (NOW() - INTERVAL ".$postvalue." DAY)";
$sql = $dbh->query($query);
if ($sql->num_rows > 0) {
  $result .= "Total records :". ' '. $sql->num_rows ;
  $result .= "<table class='"hovertable'">'n";
  while ($row = $sql->fetch_assoc()) {
    // Capture each record
    $data = array('row'=>$row);
    $result .= "<tr>";
    $result .= "<td style='"white-space: nowrap'"> ".$row['ID']."</td>";
    $result .= "<td style='"white-space: nowrap'"> ".$row['department']."</td>";
    $result .= "<td style='"white-space: nowrap'"> ".$row['customername']."</td>";
    $result .= "<td style='"white-space: nowrap'"> ".$row['date']."</td>";
    $result .= "</tr>'n";
  }
  $result .= "</table>'n";
}else{
  $result .= "0 results";
}
$dbh->close();
?>
<!DOCTYPE html>
<html>
<head>
    <title>PHP</title>
</head>
<body>
<p>
    <form action="" name="form" method="post">
      <select name="value"><?php echo(ddform_Interval($allowed_postvals)); ?></select>
      <input type="submit" name="submit" value="Submit">
    </form>
</p>
<h1>Metrics</h1>
<?php echo($result); ?>
</body>
</html>