2016-04-27 39 views
0

下面是我创建一个下拉列表中的代码,我能够从MySQL检索数据,但我必须重复每个字段的选项步骤,我如何设置代码为下拉,所以我可以缩短到在选择列表中调用它,就像在for循环中一样。如果没有选择,我如何创建错误消息以显示,并且如果我从列表中选择数据,它将存储在数据库中如何在创建相似的下拉列表时避免重复的代码?

<form action="sign.php" method="post"> 
<label for="employee_name">Employee name</label> 
<select name = "employee_name"> 
<option value=""> -----------Select----------- </option> 
<?php 
$stmt = $pdo->prepare('Select name from people'); 
$stmt->execute(); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
echo '<option>'.$row['name'].'</option>'; 
} 
?> 
</select> 
<label for="manager">manager</label> 
<select name = "manager"> 
<option value=""> -----------Select----------- </option> 
<?php 
$stmt = $pdo->prepare('Select name from people'); 
$stmt->execute(); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
echo '<option>'.$row['name'].'</option>'; 
} 
?> 
</select> 
<label for="senior">Senior</label> 
<select name = "Senior"> 
<option value=""> -----------Select----------- </option> 
<?php 
$stmt = $pdo->prepare('Select name from people'); 
$stmt->execute(); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
echo '<option>'.$row['name'].'</option>'; 
} 
?> 
</select> 
<input type="submit" name="register" value=" Click to Add"></button> 
</form> 
+0

锐化你的逻辑思维:)不,我的意思是一个编码器需要知道如何做一个很好的概念。 – Chay22

回答

0

使用数组并运行一次查询来设置数组中的选项。

<?php 
$optionArray = array(); 
$stmt = $pdo->prepare('Select name from people'); 
$stmt->execute(); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    $optionArray[] = '<option value="'.$row['name'].'">'.$row['name'].'</option>'; 
} 
?> 

<form action="sign.php" method="post"> 
<label for="employee_name">Employee name</label> 
<select name = "employee_name"> 
<option value=""> -----------Select----------- </option> 
<?php 
foreach($optionArray as $row) 
{ 
    echo $row; 
} 
?> 
</select> 
+0

使用上面的代码只写一次查询。 @ Deep13 – RJParikh

+0

PDO比旧的mysql ext更聪明,并且可以避免手动创建数组。检查[fetchAll()方法](https://phpdelusions.net/pdo#fetchall) –

-1

而不是每次创建一个执行相同任务的方法时重复此操作。

<label for="employee_name">Employee name</label> 
<select name = "employee_name"> 
<option value=""> -----------Select----------- </option> 
    <?=loadOptions('name','people');?> <!--shortcut way to echo in php--> 
</select> 

<?php 
function loadOptions($field,$table){ 
    $stmt = $pdo->prepare('Select '.$field.' from '.$table); 
    $stmt->execute(); 
    $options=''; 
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     $options .= '<option>'.$row['name'].'</option>'; 
    } 
    return $options; 
} 
?> 
+0

如何添加消息说选择不能为空或者如果我没有从列表中选择一个选项,那么它是必需的 – Deep13

+0

@ Deep13这是一个不同的问题,你应该在不同的帖子中提问 –

+0

你可以在