2012-10-08 13 views
1

我試圖使用從MySQL數據庫填充的下拉菜單創建表單。我把用於創建下拉菜單的代碼放在一個函數中,我試圖將完整的表單本身放入函數中。使用串聯將函數添加到HTML表單會導致函數錯誤地在窗體頂部顯示

問題出於某種原因,下拉菜單顯示在窗體的頂部而不是底部,就像它應該一樣。如果我看看生成的HTML,看起來出於某種原因,該函數根本就不是呈現在標記內部。

echo "<form method='post'> 
<table> 
    <tr> 
     <td><label for='artikelnr'>Artikelnummer:</label></td> 
     <td><input type='text' name='artikelnr' /></td> 
    </tr> 
    <tr> 
     <td><label for='omschrijving'>Omschrijving:</label></td> 
     <td><input type='text' name='omschrijving' /></td> 
    </tr> 
    <tr> 
     <td><label for='verkoopprijs'>Verkoopprijs:</label></td> 
     <td><input type='text' name='verkoopprijs' /></td> 
    </tr> 
    ".categorie()." 
    <tr> 
     <td><input type='submit' name='submit' value='Toevoegen' /></td> 
    </tr> 
</table> 
</form>"; 

出於某種原因,函數category()實際上似乎是在窗體之前生成的。如在回聲之前。在HTML中,它首先生成HTML中的下拉菜單,然後生成echo中包含的所有HTML,不包括函數categorie()。如何獲得在正確位置生成的函數?

+2

你能告訴我們的PHP函數categorie()? – Pitchinnate

+0

試着把'​​'圍繞類別 – jcho360

+0

在函數中使用'return'而不是'echo' –

回答

0

可能是由category()放出來的數據不包含正確<tr><td>標籤

0

保持形態和功能分開。在下拉菜單中調用該函數來填充下拉喜歡在這裏:

<?php 
function fetch_data(){ 
    //code to fetch data from the database 
    //return the result in a array as (say) $fetch_data 
} 

,並在形式

<select> 
<?php foreach($fetch_data as $show_data){ ?> 
<option value="<?php echo $show_data['data_id']; ?>"><?php echo $show_data['data']; ?></option> 
<?php } ?> 
相關問題