【问题标题】:How to put selected on one particular option inside a foreach loop如何在 foreach 循环中选择一个特定选项
【发布时间】:2014-02-03 04:30:01
【问题描述】:

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

<?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>'; 
        }
?>

【问题讨论】:

    标签: php html forms select


    【解决方案1】:

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

    输出:ed html 应该类似于:

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

    【讨论】:

      【解决方案2】:
      <?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>'; 
              }
          ?>
      

      你的数组是一维的,你不能使用“=>” 对于选择选项,您还必须在选项标签中添加“已选择”属性

      【讨论】:

        【解决方案3】:
        <?php
        $marques = array('Word', 'Word1', 'Word20', 'Word46', 'Word9797');
        
        foreach ($marques as $marque) 
           echo '<option value="'.$marque.'" '.(($marque == $_POST['marque']) ? 'selected' : '').'>'.$marque.'</option>';
        ?>
        

        【讨论】:

        • '' 和 "" 有一些错误,但谢谢!这运作良好:)
        【解决方案4】:

        你是说这个吗?

        <?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>';
            }
        ?>
        

        【讨论】:

        • 干得好!这正是我想要的。很简单,干净,boum。谢谢!
        • 其实有错误。如果您在此选择为空时按下提交按钮,它将放置第一个而不是空选项。
        • 这不是错误。我刚刚更改了您的代码,以便当 POST 参数接收到数组时,选择选项可以更改为选定状态。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 2018-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多