读书人

根据条件循环复框麻烦各位朋友帮小弟

发布时间: 2013-06-19 10:26:41 作者: rapoo

根据条件循环复框,麻烦各位朋友帮我看一下应该怎样改


<?php
$sql = "SELECT `id` , `name`
FROM `interior_authority`";
$row['authorityid']= "a,b,c,d,e";//这个是值是为了方便查看加上去,原本这个值是从数据库里读取出来的。
$authority = explode(",",$row['authorityid']);
//$row数组$row[id]值分别为"a,b,c,d,e,f,c",这值也是为了方便查看加上去的,原值是从数据库读取出来的。
$sql = mysql_query($sql,$conn);
while($row = mysql_fetch_array($sql)){
foreach($authority as $value){
if($row['id']==$value){
echo<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>
EOD;
}
}
}
?>

我想要的结果是$row['id']==$value 复选框就打上"√",其它不相等的就直接显示出来!
现在的问题是复选框能上"√",但那些没打上"√"的不会显出来,如果在whiel循环里多加一条

echo<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>
EOD;

那他就会重复显示;
希望能各位朋友帮个忙 PHP根据条件循环显示
[解决办法]
foreach($authority as $value){
$checked = $row['id']==$value ? 'checked' : '';
echo<<<EOD
<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" $checked/> $row[name]</label>
EOD;
}

[解决办法]
foreach($mysqlResult as $row){
$hasValue = false;
foreach($authority as $value){
if($row['id']==$value){
$hasValue = true;
}
}
if($hasValue){
echo 'yes';
}else{
echo 'no';
}
}


暂时只想到这个办法,不知有没有改进版的

读书人网 >PHP

热点推荐