从MySQL创建PHP下拉菜单


Creating a Drop Down Menu in PHP from MySQL?

我对PHP和MySQL有一定的经验,所以我有点掌握了窍门,但我有点试图获得一些可能超出我水平的东西(不太确定这方面的难度)。基本上,我希望创建2个下拉菜单来删除MySQL表中用户的访问权限。因此,第一个下拉菜单将用于我的用户列表,第二个下拉菜单用于他们的访问权限。我希望当我选择一个用户时,第二个下拉菜单只显示用户可以访问的选项,例如;

    <form name="form" method="post" action="access.php">
    <select name='user'>
    <?php 
require "sqlconfig.php"; // My SQL Configuration
$conn=mysql_connect($host, $user, $pass); // The Connection
$selectdb=mysql_select_db("$db"); // The Database
    $userlist1 = mysql_query("SELECT `Username` FROM `accounts` ORDER BY Username ASC");
        while ($userlist = mysql_fetch_array($userlist1)) {
        print "<option value='username'>$userlist[Username]</option>";
        }
    ?>
    </select>
<select name='task'>
<option value="notask" <?php if($_GET['task'] == notask) { echo "selected"; } ?>>Select a Task</option>
<option value="admin" <?php if($_GET['task'] == admin) { echo "selected"; } ?>>Administrator</option>
<option value="user" <?php if($_GET['task'] == user) { echo "selected"; } ?>>user</option>
<option value="guest" <?php if($_GET['task'] == guest) { echo "selected"; } ?>>Guest</option>
</select>
<input type="submit" value="Remove" />
    </form>

我已经在一个表中拥有权限,每个值都是整数0表示false,1表示true。因此,基本上,当用户从第一个菜单中选择时,我希望第二个菜单刷新,只显示他们的值=为1(这意味着他们有它),然后,当然,当表单提交时,它会将选择的任务从1更改为0,这意味着它会删除自己。

基本上,当用户被选中时(例如;Joe),第二个菜单将刷新Joe拥有的任务(例如;Admin,user)。一旦我选择了一个任务,然后单击删除,脚本应该发布用户名菜单,并在提交之前获得所选的任何任务,然后运行脚本将类似"Admin"的用户字段从1(true)更新为0(false)

有人能帮我用代码设置它吗,或者至少给我自己设置的方向吗?

创建一个div并给它一个id="result",并在该div中放置一个空的select标记。

然后使用jQuery+Ajax,使用获得第二个下拉列表

$('select[name="user"]').change(function(){
   var user = $(this).val();
   $.ajax({
      type:'post',
      url:'getSecondDropDown.php',
      data:'user='+user,
      success:function(result){
         $('div#result').html(result);
      }
   });
});

在"getSecondDropDown.php"文件中,包括以下内容:

<select name="task">
<?php
$user = $_POST['user'];
$q = mysql_query("SELECT task FROM tablename WHERE user=".$user.") or die();
while($r = mysql_fetch_array($q))
{ ?>
  <option value="<?php echo $r['task]; ?>"><?php echo $r['task]; ?></option>
<?php
}
?>
</select>

您需要使用JavaScript来完成此操作。向服务器中的页面发送AJAX请求,该页面将为您获取用户的详细信息,然后将结果返回到JavaScript。

一旦您的JavaScript中有了数据,就可以使用DOM操作来用结果填充第二个<select>