Php 如何正确使用带有<;选项>;标签
所以我有一系列的东西。数组中的项与标记一起放入下拉列表中,没有什么新的或复杂的内容,但下面是(当前工作)代码:Php 如何正确使用带有<;选项>;标签,php,html,Php,Html,所以我有一系列的东西。数组中的项与标记一起放入下拉列表中,没有什么新的或复杂的内容,但下面是(当前工作)代码: <?php foreach($roles as $role): ?> <option value="<?php echo $role['id']; ?>"><?php echo $role['name']; ?></option> <?php endforeach ?> 现在需要做的是,如果$role
<?php foreach($roles as $role): ?>
<option value="<?php echo $role['id']; ?>"><?php echo $role['name']; ?></option>
<?php endforeach ?>
现在需要做的是,如果$role['name']是“Basic”,则不应显示它。我一直在尝试(并在谷歌上搜索),但没有成功。我觉得没什么大不了的
以下是我正在尝试的:
<?php foreach($roles as $role): ?>
<?php if(!$role['name'] == "Basic") { ?>
<option value="<?php echo $role['id']; ?>"><?php echo $role['name']; ?></option>
<?php } ?>
<?php endforeach ?>
当我尝试这样做时,它根本不会向下拉列表中添加任何字段,因此我显然遗漏了一些内容。任何提示都将不胜感激,谢谢
<?php
foreach($roles as $role)
{
if($role['name'] != "Basic")
{
echo '<option value="'.$role['id'].'">'.$role['name'].'</option>';
}
}
?>
您的问题在于:
假设角色['name']
从不为空或包含字符串“0”
(请参阅),则此值将作为
false == "Basic"
它总是false
。使用=改为“代码>或编写”!(角色['name']=“Basic”)
您也可以使用if
语句的替代样式:
<?php foreach($roles as $role): ?>
<?php if($role['name'] != "Basic"): ?>
...
<?php endif ?>
<?php endforeach ?>
...
使用
而不是
<?php if(!$role['name'] == "Basic") { ?>
您的if()
不正确:
if(!$role['name'] == "Basic")
您的意图可能是:
if($role['name'] != "Basic")
怎么样:if($role['name']!=“Basic”)
?我想!角色['name']==“Basic”
的计算结果为false==“Basic”
。顺便说一句,您也可以使用if
语句的替代样式。$role[“name”]=“Basic”then。。试试echo($role[“name”]=“Basic”)然后看看是真是假。哦,是的。打电话给费利克斯很好。如果你想保持你写它的方式,可以试试if(!($role['name']==“Basic”){
@Felix,我不知道为什么(可能是因为我累了)但是我没有想到要这么做!=它现在起作用了>>我希望我能把你的答案标记为答案,但这总的来说是很愚蠢的。谢谢,anyhoo。表单中的单词Basic实际上有一个capitol B吗?大写必须是相同的。不过在这个答案上需要注意,我使用的是在我的问题上看到的if语句(而不是if:endif)我有一种奇怪的行为。没有对条件进行检查,直到我决定尝试endif格式,它才开始正常工作。我知道它们应该是等价的,但以防万一一些谷歌用户无意中发现了这个问题。
if(!$role['name'] == "Basic")
if($role['name'] != "Basic")