PHP下拉搜索结果选择错误的输入

时间:2019-09-03 08:25:38

标签: php

我制作了一个下拉搜索表单,该表单由数据库内容自动填充。表中的声音例如是具有变化尺寸的木材类型。 因此,存在可重复的具有不同数据的木材名称。 为避免重复,下拉菜单中填充了要选择的木材类型,然后显示其所有变体。 问题是,在选择输入时,结果是上面列出的项目的结果,而不是所选的结果。

<form action="search2.php" method="POST">
    <select name="finit"  onchange='this.form.submit()'>
      <?php
      include("connect.php");
      $query = "SELECT finit FROM prime";
      $info = mysqli_query($conn, $query);
      $finit = '';

         echo "<option value=\"\">Selezione Materiale</option>";
        while($row = $info->fetch_assoc()){
if($row['finit'] != $finit) {
    echo "<option value=\"$finit\">" . $row['finit'] . "</option>";
    $finit = $row['finit']; 
                            } 
    } 
       ?>
    </select>
    <noscript><input type="submit" value="Submit"></noscript>
  </form>

2 个答案:

答案 0 :(得分:0)

尝试此操作,但更改根据您的默认值和sql值确定的条件是否匹配。

    <form action="search2.php" method="POST">
        <select name="finit"  onchange='this.form.submit()'>
          <?php
          include("connect.php");
          $query = "SELECT finit FROM prime";
          $info = mysqli_query($conn, $query);
          $finit = '';
        ?>
            <option value="">Selezione Materiale</option>;
            <?php
            while($row = $info->fetch_assoc()){
                    if($row['finit'] == $finit) {
                        $selected = 'selected'; 
                    }else{
                        $selected = ''; 
$finit = $row['finit']; 
                    }  
           ?>
           <option value="<?php echo $finit ?>" <?php echo $selected ?>><?php echo $row['finit']?></option>
           <?php } ?>
        </select>
        <noscript><input type="submit" value="Submit"></noscript>
      </form>

答案 1 :(得分:0)

由于与一个木材类型关联的变体(尺寸)很多,因此您必须首先将木材类型作为用户的输入(通过下拉列表),然后可能要显示所有可能的变体(尺寸)特定的木材类型。

因此,以以下方式更改SQL查询,

$query = "SELECT DISTINCT finit FROM prime";

while循环,方法如下:

while($row = $info->fetch_assoc()){
    $output = "<option value='" . $row['finit'] . "'";
    if($row['finit'] == $_POST['finit']){
        $output .= " selected='selected'";
    }
    $output .= ">" . $row['finit'] . "</option>";
    echo $output;
}