如何将选择放在foreach循环中的一个特定选项上

时间:2014-01-14 22:06:04

标签: php html forms select

我试图在foreach中回显我的数组中的值“selected”。如果表单是假的并且我的客户已经在我的选择中输入了特定值,则将其返回,这样他就不会再填充它!这就是我想要做的......

<?php
 $marques = array('Word','Word1','Word20','Word46','Word9797');
        foreach ($marques as $marque => $value) 
        {
        if (isset($_POST['marque']) && $_POST['marque'] == $value[$_POST['marque']]) {
            echo '<option value="'.$_POST["marque"].'">'.$value[$_POST["marque"]].'</option>';
        }
            echo '<option value="'.$marque.'">'.$value.'</option>'; 
        }
?>

4 个答案:

答案 0 :(得分:2)

<?php
$marques = array('Word', 'Word1', 'Word20', 'Word46', 'Word9797');

foreach ($marques as $marque) 
   echo '<option value="'.$marque.'" '.(($marque == $_POST['marque']) ? 'selected' : '').'>'.$marque.'</option>';
?>

答案 1 :(得分:1)

你是说这个?

<?php
    $marques = array('Word','Word1','Word20','Word46','Word9797');

    foreach ($marques as $marque => $value) {
        $setItSelected = '';
        if (isset($_POST['marque']) && $_POST['marque'] == $marque) {
            $setItSelected = 'selected';
        }

        echo '<option value="'.$marque.'" '.$setItSelected.'>'.$value.'</option>';
    }
?>

答案 2 :(得分:0)

更改value属性中的内容不会使项目或多或少被选中。您需要添加所选属性,请参阅http://www.w3schools.com/tags/att_option_selected.asp

输出:ed html应该类似于:

<option value="id" selected>some text</option>

答案 3 :(得分:0)

<?php
 $marques = array('Word','Word1','Word20','Word46','Word9797');
        foreach ($marques as $marque) 
        {
        if (isset($_POST['marque']) && $_POST['marque'] == $marque') 
            echo '<option value="'.$marque.'" selected>'.$marque.'</option>';

        else
             echo '<option value="'.$marque.'">'.$marque.'</option>'; 
        }
    ?>

您的数组是一个维度,您不能使用“=&gt;” 对于select选项,您还必须在选项标记

中添加“selected”属性