如何为选择选项使用带数组的for循环?

时间:2016-06-25 22:40:58

标签: php pdo

我正在尝试创建一个表单选择语句,其中包含使用此循环创建的选项,如下所示:

<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 >

但是在表单中,我在选择字段中输入了nada。我有点工作。它正在填充下拉列表,但它给了我错误的价值观。由于我已经尝试修复它,我无法在现场获得任何东西。

这让我疯了!

2 个答案:

答案 0 :(得分:0)

摆脱开放标记及其名称之间的空格

echo '<option value= ' 

再次关闭标签

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

答案 1 :(得分: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
   }
?> 

它将完美地满足您的要求。 感谢