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

时间:2014-07-02 02:43:14

标签: php if-statement foreach

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

2 个答案:

答案 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;
?>