我想生成一个带有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
请帮忙吗?
答案 0 :(得分: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>";
答案 1 :(得分:0)
选择标签结构不正确。
echo "<select name='prenda'>";
echo "<option value='{$prenda}'>{$prenda}</option>";
echo "</select>";
echo "<input type='submit' name='botton' value='submit' />";
答案 2 :(得分: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名称,值FROM ...(来自您的数据库),您还可以使用$ row [1]作为值
如果你想在其他地方使用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'];
}