在所选用户中循环并动态填充下拉列表

时间:2017-05-13 07:48:28

标签: php html mysqli

所以这是管理员页面的一部分。 经过几次修改后,我来到了这里,这是我能得到的最好的结果:

<?php

$sql = "SELECT name
        FROM users";
$result = mysqli_query($connection, $sql);

$users = array();

while ($row = mysqli_fetch_assoc($result))
{
     $users[] = $row["name"];
}

echo ('</br><form action="" method="POST" style="display:inline!important"></br>
        <select name="deleteUser">
        <option value="' . $users[1] . '">' . $users[1] . '</option>' . 
       '<option value="' . $users[2] . '">' . $users[2] . '</option>' .
       '<option value="' . $users[3] . '">' . $users[3] . '</option>' .
       '<option value="' . $users[4] . '">' . $users[4] . '</option>' .
       '<input class="w3-bar-item w3-button w3-hide-small w3-hover-green"  type="submit" value="Delete" name="delete"></select></form>');
if (isset($_POST["delete"]))
{
     $sql = "DELETE
             FROM users
             WHERE name = '" . $_POST["deleteUser"] . "'";
     mysqli_query($connection, $sql);

}
?>

我试着写一个循环来生成像这样的选择选项:

<?php

$sql = "SELECT name
        FROM users";
$result = mysqli_query($connection, $sql);

$users = array();

while ($row = mysqli_fetch_assoc($result))
{
     $users[] = $row["name"];
}

echo ('</br><form action="" method="POST" style="display:inline!important"></br>
        <select name="deleteUser">');

for ($i = 0; $i < count($users); $i++)
{
    echo('<option value="' . $users[$i] . '">' . $users[$i] . '</option>');
}   

echo('<input class="w3-bar-item w3-button w3-hide-small w3-hover-green"  type="submit" value="Delete"></select></form>');
if (isset($_POST["delete"]))
{
     $sql = "DELETE
             FROM users
             WHERE name = '" . $_POST["deleteUser"] . "'";
     mysqli_query($connection, $sql);

}
?>

但是浏览器没有呈现它(即Chrome),可能是因为它只能在部分上?喜欢等待循环完成然后结束表单的最后一部分。 无论如何,我怎么能让它工作?谢谢伙伴......

1 个答案:

答案 0 :(得分:2)

您可以使用while,而不是使用foreach循环,这是您可以正确使用foreach

的地方

以下是一个可以帮助您的示例

 while ($row = mysql_fetch_assoc($result)) { 
   $rows[] = $row; 
 }
foreach($rows as $val){

   //Here populate your options like this
   echo '<option> '.$val["name"].' </option'
}

希望这会帮助你:))