2016-06-25 11 views
0

selectオプションにforループとarrayを使用するにはどうしたらいいですか?私はそうのようなこのループで作成されたオプションを持つフォームselect文を作成しようとしています

<div class="form-group"> 
      <label for="inputType" class="col-md-4 control-label">Type: <span class="error">*</span></label> 
      <div class="col-md-8"> 
      <select class="form-control" name="type" id="inputType">    
       <option value="" >Select:</option> 
       <?php 
       for ($row = 0; $row < 4; $row++) { 
       echo '< option value= ' . '"' .$result[$row][1] . '"'; 
       if ($type == $result[$row][1]){ 
        echo ' selected '; 
       }    
       echo '>' . $result[$row][1] . '</option><br>'; 
       } 
       ?> 
      </select><span class="error"><?=$typeErr;?></span> 
      </div> 
     </div> 
     </div> 

私はPDO select文の後に、しかし、HTML <head>タグの上に正確なループを使用している場合:

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT ptype.* FROM ptype"); 
    $stmt->execute(); 
} 
catch(PDOException $e) { 
    echo "Error: " . $e->getMessage(); 
} 

$result = $stmt->fetchAll(); 


      for ($row = 0; $row < 4; $row++) { 
      echo '< option value= ' . '"' .$result[$row][1] . '"'; 
      if ($type == $result[$row][1]){ 
       echo ' selected '; 
      }    
      echo '>' . $result[$row][1] . '</option><br>'; 
      } 

それはこのように、完全に出力します。

< option value= "member">member</option> 
< option value= "org employee">org employee</option> 
< option value= "org admin employee">org admin employee</option> 
< option value= "org admin member">org admin member</option> 

しかし、フォーム内に、私がダウンして私の選択フィールドのドロップで灘を取得します。私は幾分か働いていた。ドロップダウンに値を設定していましたが、それは私に間違った値を与えていました。私はそれを修正しようとしたので、私はフィールドで何も得ることができません。

これは私をナットにしています!

+0

タグにスペースを入れることができます。 '

+1

Doh!私の頭は私の机の上でそれを叩いて傷ついている。たくさんのsooooありがとう! – Tom

+1

私は閉じオプションタグにもスペースがありました。それはすべて今働いている。私はあなたがどれくらい速く答えたのか、解決策はそれほど少ないのか信じられません!ありがとうございます! – Tom

答えて

0

オープンタグとその名前

終了タグのための
echo '<option value= ' 

そして再び

echo '>' . $result[$row][1] . '</option ><br>'; 
0

の間のスペースを取り除くあなたはこれを試すことができます。

<?php 
    for ($row = 0; $row < 4; $row++) { 
    ?> 
     <option value='<?php echo $result[$row][1]; ?>' <?php if ($type == $result[$row][1]){ echo 'selected="selected"'; } ?>> 
     <?php echo $result[$row][1]; ?> 
     </option> 
    <?php 
    } 
?> 

それは動作しますあなたの要件として完全に。 ありがとう

関連する問題