代码之家  ›  专栏  ›  技术社区  ›  Outnedwaste

如何选择带数组值的选项

  •  -1
  • Outnedwaste  · 技术社区  · 7 年前

    有人能告诉我如何用数组的值来选择选项吗?我自己写了一些代码,但字段仍然是空的。

    <select id="gebruiker" name="gebruiker" class="form-control">
       <?php
          $query = "SELECT * FROM users";
          $result = mysqli_query($conn, $query);
    
          while ($row1 = mysqli_fetch_array($result)):;
          ?>
               <option value="<?php
                  echo $row1[0]; ?>">
                  <?php
                     echo "<p>$row1[0] $row1[1]</p>"; ?>
               </option>
       <?php
          endwhile;
          ?>
    </select>
    

    代码需要显示用户的ID($row[0])和名称($row[1])。

    2 回复  |  直到 7 年前
        1
  •  -1
  •   Renato Guimares Mogekag    7 年前

    您可以稍微清理一下代码。不需要一直打开和关闭PHP标记,只需将HTML作为 回声 函数的作用是避开带有反冲的双引号(即\),但我建议您在双引号内使用单引号 回声 .

    我也会替换你的 虽然 用一个 前臂 . 假设你的变量 $结果 如您所定义:

    <select id="gebruiker" name="gebruiker" class="form-control">
    <?php
        $query = "SELECT * FROM users";
        $result = mysqli_query($conn, $query);
        $rows=$result->fetch_all(MYSQLI_ASSOC);
        foreach($rows as &$row) {
            echo "
                <option value='$row[0]'>
                    <p>$row[0] $row[1]</p>
                </option>
            ";
        }
    ?>
    </select>
    
        2
  •  0
  •   Baum    7 年前

    你可以这样做:

    PHP:

    <?php
        function getSelectItems()
        {
            $con = mysqli_connect("localhost", "my_user", "my_password", "world");
            $table = array();
    
            if ($result=mysqli_query($con, "SELECT * FROM users")) {
                if (mysqli_num_rows($result) > 0) {
                    $counter = 0;
                    while($row = $result->fetch_assoc()) {
                        $table[$counter] = $row;
                        $counter++;
                    }
                }
            }
    
            $con->close();
    
            return $table;
        }
    ?>
    
    <select id="gebruiker" name="gebruiker" class="form-control">
        <?php
            $items = getSelectItems();
            for($i = 0; $i < count($items); $i++)
            {
                $row = $items[$i];
                echo "<option value=\"".$row[0]."\">".$row[0]." ".$row[1]."</option>";
            }
        ?>
    </select>
    

    将逻辑与视图分离是很好的。因此,我在这里外包了将数据提取到函数中的工作。

    这使景色更加清晰。