基本上,我想做的是将mysql_array的内容填充到下拉框中。。。在用户做出选择并提交表单后,下拉框将不包含他们刚刚使用的选择。。。。此表格必须多次提交。。。如果只提交一次,我可以让它正常工作,没有问题。。。所以我多次尝试将他们已经使用过的东西放入一个数组中,然后将其与mysqlarray进行比较,这样已经选择的项目就不会再次出现。。。。这就是我所拥有的,我可能离很远
$_SESSION['name']=array();
array_push($_SESSION['name'],$_POST['selEmpl']);
function e(){
$sql="select name from IMSemploy ORDER BY name ASC";
$results=mysql_query($sql) or die(mysql_error());
echo"<select name='"selEmpl'" size='"1'">";
?><option value="Select">Select</option> <?
foreach ($_SESSION['name'] as $value){
while ($row = mysql_fetch_array($results)){
if($row['name']!=$value){
echo'<option value="'.$row['name'].'">'.$row['name'].'</option>';
}
}
}
echo'</select>';
}
那么您想隐藏已经单击的值吗?
您只需要循环一次sql结果集,并且不显示会话中已经存储的值:
while ($row = mysql_fetch_array($results))
{
if (array_search($row['name'], $_SESSION['name']) === false)
{
echo'<option value="'.$row['name'].'">'.$row['name'].'</option>';
}
}
除此之外,每次运行脚本时都会破坏$_SESSION['name']
变量,您只需要第一次将其设置为空数组:
session_start();
if (!isset($_SESSION['name']))
{
$_SESSION['name']=array();
}
在显示选项元素之前,删除foreach循环并测试此条件
if (!in_array($row["name"], $_SESSION["name"])) {
echo'<option value="'.$row['name'].'">'.$row['name'].'</option>';
}