2016-04-27 29 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

你可以在