发送到输入的位置,我希望它是一个选择。我不知道如何让选择显示已注册到我的系统的用户名。
这就是我想要的样子:https://i.stack.imgur.com/wbDER.png
这种情况不断发生:https://i.stack.imgur.com/NpzgZ.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>
有人知道怎么做吗?
提前感谢!
请参阅http://www.w3.org/wiki/HTML/Elements/select
您可以在用户登录时将他们添加到数据库中,然后从表中选择他们,并添加到选项列表中。如果他们注销了,您可以删除正确的记录,或者使用cron脚本,如果他们在一段时间内没有活动,则删除签名会话记录。如果你有庞大的系统,这个版本会很糟糕。
当你已经对数据库进行了查询并将其放入变量中时,你应该这样做:
foreach ($login_user as $item){
echo '<option value="'.$item['session_id'].'">'.$item['user_name'].'</option>';
}
这里有一个快速示例:
<?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动态显示用户名(建议)列表,同时用户开始在文本框中键入用户的名称。
希望这对你有所帮助。:)