下拉选择成员列表

时间:2012-03-12 09:37:55

标签: php mysql

发送到输入的地方,我希望它是一个选择。我无法弄清楚如何使选择显示已注册到我的系统的用户名。

这就是我想要的样子:http://i.stack.imgur.com/wbDER.png

这种情况不断发生:http://i.imgur.com/XJv5h.png

代码:

    <form action="pm.php?mode=sendit" method="post">
    Send To:<br />
  <?
  $sql = mysql_query("select * from usr_users");
  while($m = mysql_fetch_array($sql))
  { ?>
        <SELECT name="sendto">
        <OPTION value="<? echo("$m[username]");?>"><? echo("$m[username]");?></OPTION>
    </select>
    <? } ?>
    Message Subject:<br />
    <input type="text" name="subject" /><br /><br />
    Message:<br />
    <textarea name="privmsg" id="new_message" cols="40" rows="5"></textarea>
<script language="JavaScript">
  generate_wysiwyg('new_message');
</script>
    <br /><br />
    <input type="hidden" value="<? echo("$_SESSION[usr_name]");?>" name="sentfrom" />
    <input type="submit" value="Send" />
    </form>

有谁知道怎么做?

提前致谢!

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以在登录时向您的数据库添加用户签名会话,然后从您的表中选择它们,并添加到选项列表。如果它们是注销,则删除正确的记录,或者放置cron脚本,如果它们在一段时间内不是活动,则会删除它们。如果你有庞大的系统,那么这个版本会很糟糕。

当您已经对数据库进行查询并将其置于变量中时,您应该这样做:

 foreach ($login_user as $item){
  echo '<option value="'.$item['session_id'].'">'.$item['user_name'].'</option>';
 }

答案 2 :(得分:0)

以下是您的简单示例:

<?php
    //query the db and select all usernames. Here, I'm just using an array for testing purpose
    $usernames[] = 'abc';
    $usernames[] = 'treyt';
    $usernames[] = 'uiu';
    $usernames[] = 'cvcvb';
    $usernames[] = 'mty';
    $usernames[] = 'opo';

    //so $usernames array holds all usernames now.
?>

<html>
    <body>
        <form method="post" action="index.php">
            Username: <select name="user_name">
                        <?php
                        //output the usernames
                        foreach($usernames as $user)
                            echo '<option>' . $user . '</option>';
                        ?>
                    </select>
            <input type="submit" value="Send" />
        </form>
    </body>
</html>

但如果您有很多用户,那么我不会建议这种方法。因为,列表很长。相反,您可以使用AJAX动态显示用户名列表(建议),同时用户开始在文本框中键入用户名。

希望这会对你有所帮助。 :)