我正在使用Filemaker API - 类似于sql - 基本上是从字段和列表中提取数据。
我正在尝试在foreach循环中设置一个if语句,以便在我的html
中将select =“selected”标签添加到我的select选项中这是代码
<?php
$layout =& $fm->getLayout('Leads');
$values = $layout->getValueList('LeadStatus');
$list_menu = '<select name="LeadDocStatusSelect">';
foreach ($values as $value)
{
$list_menu .='<option value="' . $value . '">' . $value . '</option>' ;
}
$list_menu .= '</select>';
echo $list_menu;
?>
如何在foreach循环中添加这样的if语句?
if ($businessJudgements == 'No') {
echo 'checked="checked"';
} else {
echo '';
}
答案 0 :(得分:0)
foreach
循环的主体只是一个语句块,因此您可以根据需要输入任意数量,例如:
foreach ($values as $value) {
$list_menu .='<option value="' . $value . '">' . $value . '</option>';
if ($businessJudgements == 'No') {
echo 'checked="checked"';
} else {
echo '';
}
}
但是,您确定自己拥有option
标记的正确属性吗?如果您打算选择特定选项,checked
不是正确的方法(它适用于复选框输入字段)。 selected
属性是HTML option
代码的正确属性。
所以你最好用以下的东西:
# The default is orange.
$default_value = "orange";
# Process every option.
foreach ($values as $value) {
# Add [<option value="X"].
$list_menu .= '<option value="' . $value . '"';
# Add [ selected] ONLY for default one.
if ($value == $default_value) {
$list_menu .= ' selected';
}
# Add [>X</option>].
$list_menu .= '>' . $value . '</option>';
}
这会根据需要为您提供option
代码,但值与默认值匹配的代码也会附加selected
属性。
假设$values
持有数组{"red", "black", "orange", "yellow"}
,你最终会得到(为了答案而在这里很好地格式化):
<option value="red"> red </option>
<option value="black"> black </option>
<option value="orange" selected> orange </option>
<option value="yellow"> yellow </option>
答案 1 :(得分:0)
我假设您已经知道如何获得$ businessJudgement,因此代码应该是这样的
<?php
$layout =& $fm->getLayout('Leads');
$values = $layout->getValueList('LeadStatus');
$list_menu = '<select name="LeadDocStatusSelect">';
foreach ($values as $value)
{
if ($businessJudgements == 'No') {
$list_menu .='<option value="' . $value . '">' . $value . '</option>' ;
} else {
$list_menu .='<option value="' . $value . '" selected >' . $value . '</option>' ;
}
}
$list_menu .= '</select>';
echo $list_menu;
?>