需要在php foreach循环中执行if语句


Need to perform an if statement inside a php foreach loop

我正在使用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;
?>