我正在使用Filemaker API -它类似于sql -基本上它从字段和列表中提取数据。
我试图在我的foreach循环中设置一个if语句,这样它就可以在我的html
中的选择选项中添加一个标签selected="selected"下面是代码
<?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 '';
}
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>
我假设您已经知道如何获得$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;
?>