简体   繁体   English

选择框选项过滤器

[英]Select Box option filter

Is the following code wrong here? 以下代码在这里错误吗?

I have a three option select box for different select queries for displaying data. 我有一个三个选项选择框,用于显示数据的不同选择查询。 I can't seem to get it to work. 我似乎无法正常工作。 The form is submitted with a submit button with a name and value of submit. 表单是通过带有名称和提交值的提交按钮提交的。 Do I need to check the select box name as well? 我还需要检查选择框名称吗?

if(isset($_POST['submit'])) {
  if($_POST['value']=='all_records') {
    $sql = "SELECT *
        FROM contact_list
        ";
  }
  elseif($_POST['value']=='surname_desc') {
    $sql = "SELECT *
            FROM contact_list
            ORDER BY Surname DESC";
  }
  else{
    $sql = "SELECT *
            FROM contact_list
            ORDER BY FirstName ASC";
  }
$results = mysqli_query($dblink, $sql) or die (mysqli_error());
}

My form: 我的表格:

  <form class="filteroption" action="" method="post">
          <select class="select" name="select">
            <option value ="all_records" selected="selected">All  records</option>
            <option value ="surname_desc" selected="selected">Surname  Desc</option>
            <option value ="firstname_asc" selected="selected">First Name   Asc</option>
          </select>
            <input  class="" type="submit" name="submit" value="submit">
          </form>

The queries aren't working and changing the content of my table. 查询无法正常工作,并更改了表的内容。 I am echoing out from $results into thr table using foreach etc, which seems to work fine with the default pre query view of the page... 我正在使用foreach等从$ results回显到thr表中,这似乎可以与页面的默认预查询视图一起正常工作...

Replace $_POST['value'] with $_POST['select'] in all your conditions. 在所有条件下,将$_POST['value']替换$_POST['value'] $_POST['select'] You should use the name of the select tag to compare the values. 您应该使用select标记的名称来比较值。

Also I see that you added selected="selected" for all options in select box. 我还看到您为选择框中的所有选项添加了selected="selected" It should be added to only one option. 仅应将其添加到一个选项中。

The name of your select is not "value" but "select" : 您选择的名称不是“值”,而是“选择”:

if(isset($_POST['submit'])) {
  if($_POST['select']=='all_records') {   //<=========== 'select'
    $sql = "SELECT *
        FROM contact_list
        ";
  }
  elseif($_POST['select']=='surname_desc') {   //<=========== 'select'
    $sql = "SELECT *
            FROM contact_list
            ORDER BY Surname DESC";
  }
  else{
    $sql = "SELECT *
            FROM contact_list
            ORDER BY FirstName ASC";
  }
$results = mysqli_query($dblink, $sql) or die (mysqli_error());
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM