-1

我想生成一个表单,其中包含从 mysql 查询中获取的选项。我写的代码是这样的:

echo "<form action='buscar_ropa.php' method='post' enctype='multipart/form-data'>";
                while ($f =  mysqli_fetch_array($busca)){
                    $f =  mysqli_fetch_array($busca);
                    $prenda=makestring($f);

                    echo" <select name='prenda'>";
                        echo "<input type='option' name='$prenda' value='' /><br/>";
                        echo "<input type='submit' name='boton' value='buscar' />";
                    echo "</select>";
                }
echo "</form>";

但它没有正确生成它,表单看起来像这样

http://i.stack.imgur.com/6dupK.png

请问有什么帮助吗?

4

3 回答 3

0

选择标签结构不正确。

echo "<select name='prenda'>";
    echo "<option value='{$prenda}'>{$prenda}</option>";
echo "</select>";
echo "<input type='submit' name='botton' value='submit' />";
于 2013-08-02T11:30:22.140 回答
0

取决于你想做什么?也许这就是你想要的:

echo "<form action='buscar_ropa.php' method='post' enctype='multipart/form-data'>";
echo" <select name='prenda'>";
while ($row = mysqli_fetch_array($busca)) {
    echo "<input type='option' name='$row[0]]' value='' />";
}
echo "</select>";
echo "<input type='submit' name='boton' value='buscar' />";
echo "</form>";

这使每一行的第一个元素成为下拉选择中的一个选项(名称)。

在您的代码和其他答案中,您将为从数据库中获得的每一行创建一个带有一个选项的下拉列表。

你也做双取!我认为您只会得到查询返回的偶数行:

while ($f =  mysqli_fetch_array($busca)){
    $f =  mysqli_fetch_array($busca); 

如果您获得 SELECT name, value FROM ... (来自您的数据库),您也可以使用 $row[1] 作为值

如果您想在for的其他地方使用sql查询的数据,我建议将结果保存在数组中(以您需要的方式):

while ($row = mysqli_fetch_array($result)) {
    $array-f = array('id' => $row['0'], 'name' => $row['2']);
}
/*then you use*/
foreach($array-f as array-f-row) {
    echo array-f-row['id'] . ' & ' . array-f-row['name'];
}
于 2013-08-02T11:30:46.980 回答
0

尝试这个:

echo "<form action='buscar_ropa.php' method='post' enctype='multipart/form-data'>";
                while ($f =  mysqli_fetch_array($busca)){
                    $f =  mysqli_fetch_array($busca);
                    $prenda=makestring($f);

                    // Please escape your string properly for inserting it in HTML
                    // $prenda = htmlentities($prenda, ENT_QUOTES);

                    echo " <select name='prenda'>";
                        echo "<option value='$prenda'>$prenda</option>";
                    echo "</select>";
                }
echo "<input type='submit' name='boton' value='buscar' />";
echo "</form>";
于 2013-08-02T11:17:10.877 回答