1

我正在尝试使用从 MySQL 数据库填充的下拉菜单制作一个表单。我将用于创建下拉菜单的代码放在一个函数中,并且我试图将完整的表单本身也放在一个函数中。

问题是由于某种原因下拉菜单显示在表单的顶部而不是底部,就像它应该的那样。如果我查看正在生成的 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()。如何让函数在正确的位置生成?

4

2 回答 2

0

可能发出的数据category()不包含正确的<tr><td>标签

于 2012-10-08T13:07:12.910 回答
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 } ?>
于 2012-10-08T13:11:29.857 回答