根据条件循环复框,麻烦各位朋友帮我看一下应该怎样改
PHP根据条件循环显示
<?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;
那他就会重复显示;
希望能各位朋友帮个忙
回复讨论(解决方案)
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;}
你只让程序显示了相等的情况,没让程序显示不相等的情况
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; }else{echo<<$row[name]EOD;}
你只让程序显示了相等的情况,没让程序显示不相等的情况
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; }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'; } }
暂时只想到这个办法,不知有没有改进版的
问题解决,解决代码如下,谢谢热心的朋友提醒
<?php $sql = "SELECT `id` , `name`FROM `interior_authority`";$authority = explode(",",$row['authorityid']);$sql = mysql_query($sql,$conn); while($row = mysql_fetch_array($sql)){ $cc=""; foreach($authority as $value){ if($row['id']==$value){ $pd = "true"; $cc = <<<EOD<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" checked="checked"/> $row[name]</label>EOD; break; }else{ $pd = "false"; }//if end $cc=$cc.$cc; }//foreach end if($pd == "true"){ echo $cc; }else{ echo <<<EOD<label><input name="chk_authority[$row[id]]" type="checkbox" id="chk_authority" value="$row[id]" /> $row[name]</label>EOD; } } ?>
版主的这个方法,不但会重复就连那个选择口也不会出来,不过还是谢谢你的热心

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Long URLs, often cluttered with keywords and tracking parameters, can deter visitors. A URL shortening script offers a solution, creating concise links ideal for social media and other platforms. These scripts are valuable for individual websites a

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

This is the second and final part of the series on building a React application with a Laravel back-end. In the first part of the series, we created a RESTful API using Laravel for a basic product-listing application. In this tutorial, we will be dev

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

The 2025 PHP Landscape Survey investigates current PHP development trends. It explores framework usage, deployment methods, and challenges, aiming to provide insights for developers and businesses. The survey anticipates growth in modern PHP versio

In this article, we're going to explore the notification system in the Laravel web framework. The notification system in Laravel allows you to send notifications to users over different channels. Today, we'll discuss how you can send notifications ov
