欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-01 21:22:08
...
PHP根据条件循环显示
  $row[name]EOD;		 }	}} ?>

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

那他就会重复显示;
希望能各位朋友帮个忙

回复讨论(解决方案)

foreach($authority as $value){  $checked = $row['id']==$value ? 'checked' : '';  echo $row[name]EOD;}

你只让程序显示了相等的情况,没让程序显示不相等的情况

if($row['id']==$value){            echo $row[name]EOD;         }else{echo $row[name]EOD;}

你只让程序显示了相等的情况,没让程序显示不相等的情况

if($row['id']==$value){            echo $row[name]EOD;         }else{echo $row[name]EOD;}
这样每遍历一次数组,他就会重复,这个我试过不行

if($id==$value){}else{}
这怎么会重复的。。
就一个条件,要么是要么否。。

if($id==$value){}else{}
这怎么会重复的。。
就一个条件,要么是要么否。。

因为有丙次的盾环在那里: foreach 与WHILE 循环

while 循环一次, foreach 要循环4次因为$authority数组有4个值,在这4个值里面只有一个值是跟$id配置的,如果你在IF里加入ELSE 那他就会同一记录出现重3次IF ELSE里的值

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


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

问题解决,解决代码如下,谢谢热心的朋友提醒

  $row[name]EOD;			break;		 }else{			 $pd = "false";		 }//if end		 $cc=$cc.$cc;	}//foreach end	if($pd == "true"){		echo $cc;	}else{			echo  $row[name]EOD;	}	} ?>

版主的这个方法,不但会重复就连那个选择口也不会出来,不过还是谢谢你的热心