2012-03-24 78 views
0

基本上我想要做的是从mysql_array的内容填充下拉框到下拉框中...用户进行选择并提交后dopdown框的形式将不包含他们刚才使用的选择......这种形式将不得不提交多次...我可以让它工作没有问题,如果它只是提交一次...所以多次我试图把他们已经使用到数组中,然后将它与mysql_array进行比较,以便已经选择的项目不会再出现....这就是我所拥有的,我可能会离开...mysql数组到下拉框中,然后使用它后删除该选择

$_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>'; 
} 

回答

1

所以你想隐藏已经cl的值icked?

您可以通过设置只是一次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(); 
} 
+0

工程就像一个魅力......谢谢! – dave 2012-03-24 18:11:24

+0

@dave不客气! – jeroen 2012-03-24 19:19:30

0

显示选项元素

之前删除此条件foreach循环和测试
if (!in_array($row["name"], $_SESSION["name"])) { 
    echo'<option value="'.$row['name'].'">'.$row['name'].'</option>'; 
} 
相关问题