0

私はドロップダウンメニューから私の値を保持したい(=フォームにエラーがある場合は値を保持する)、これが私が始めたものです:

    ...
    $priorities = array('low','normal','high'); 
    ...
    <select name="priority" id="priority">
       <?php 
          foreach ($priorities as $pro){
            echo '<option value="'.$pro.'">'.$pro.'</option>'; 
          }
        ?>
    </select>

それは仕事をしますが、持続しません。

今、私はこのようなものに行きたいです:

   <select name="priority" id="priority">
       <?php 
          $tel = 0;
          foreach ($priorities as $pro){
             echo '<option value="'.$tel.'"'.htmlentities('<?php if (isset($_POST[\'priority\']) && (int) $_POST[\'priority\'] === tel) { echo \'selected="selected"\'; } ?>').' >'.$pro.'</option>'; 
             $tel++;
          }
       ?>
    </select>

しかし、それはもちろんエラーになります。

誰でも何か提案がありますthx

4

4 に答える 4

2

私がよくこれを実装する方法は次のとおりです。

<select name="priority" id="priority">
    <?php
    foreach ($priorities as $pro)
    {
        $selected = (isset($_POST['priorities']) && $pro == $_POST['priority']) ? 'selected' : '';
        echo '<option value="' . $pro . '" '.$selected.'>' . $pro . '</option>';
    }
    ?>
</select>

ここで実際に三項を次のように短縮できることを指摘したいと思いました

<select name="priority" id="priority">
    <?php
    foreach ($priorities as $pro)
    {
        $selected = ($pro == @$_POST['priority']) ? 'selected' : '';
        echo '<option value="' . $pro . '" '.$selected.'>' . $pro . '</option>';
    }
    ?>
</select>

申し訳ありませんが、可能な限り短いコードを作成するためのちょっとしたことがあります:)

于 2012-11-24T10:28:01.787 に答える
0
$priority= array (1=>"low","normal","high");
    $select = "<select name=\"priority\"> ;
      foreach ($priority as $key => $val) {
        $select .= "\t<option val=\"".$key."\"";
        if ($val == $yourcheckedvariable) {
           $select .= " selected=\"selected\">".$val."</option>\n";
        } else {
        $select .= ">".$val."</option>\n";
    }
}
 $select .= "</select>";
echo $select;

このコードを使用する

于 2012-11-24T10:58:39.080 に答える
0

コードの 2 番目の部分を次のように変更します。

<select name="priority" id="priority">
   <?php 
      foreach ($priorities as $pro) {
         if (isset($_POST['priority']) && $_POST['priority'] == $pro) {
            $selected = 'selected="selected"';
         }
         else {
            $selected = null;
         }
         echo '<option value="'.$pro.'" '.$selected.'>'.$pro.'</option>'; 
      }
   ?>
</select>
于 2012-11-24T10:30:33.830 に答える
0

これを試して

<select name="priority" id="priority">
   <?php 
      $tel = 0;
      foreach ($priorities as $pro){
         echo '<option value="' 
            .$tel
            .'"'
            .(isset($_POST['priority']) && (int)$_POST['priority'] === $tel)?'selected="selected"':''
            .' >'
            .$pro
            .'</option>'; 
         $tel++;
      }
   ?>
</select>
于 2012-11-24T10:32:55.107 に答える