我使用mysql将数据插入下拉菜单。我有多个下拉菜单 - 每个下拉菜单都有名称id
- 我从数据库($stmt
)获取此信息。我通过另一个mysql查询$stmt2
得到的每个下拉菜单的内容。
我需要确定在每个下拉菜单中设置了哪个id
。我需要稍后使用这些值。这是我的解决方案,但不起作用。它不打印任何东西。
echo "<table class ='centered_div' border='1px solid black'>";
echo "<tr><td>ID</td><td>food</td><td>g</td></tr>";
while($rows = $stmt->fetch()){
echo "<tr><td>" . $rows['id'] . "</td><td>".$rows['food'];
echo "<form action='upravit_plan.php' method='post'><select name =".$rows['id']." > ";
$stmt2 = $db->query($q2);
echo "<option value ='nothing'> choose one </option>";
while($rows2 = $stmt2->fetch())
{
echo '<option value = '.$rows2['id'].'>'.$rows2['food'].'</option>';
}
echo "</select></form>";
echo "</td> <td>" . $rows['g'] . "g</td></tr><br> ";
};
echo "<tr><td colspan='3'><form action='upravit_plan.php' method='post'><input name = 'go' type='submit' value='OK'/></form></td></tr>";
echo "</table>";
if(isset($_POST['go']))
{
$stmt = $db->query($q);
while ($rows = $stmt->fetch())
{
echo $_POST[$rows['id']]; // trying to print values
}
}
答案 0 :(得分:0)
您需要将所有元素都放在一个表单中。您还应该尝试将PHP与HTML分开,这可能是一个良好的开端,但仍需要HTML escaping之类的东西。请特别注意alternative syntax和short echo tags的使用。
<form action='upravit_plan.php' method='post'>
<table class ='centered_div' border='1px solid black'>
<tr>
<th>ID</th>
<th>food</th>
<th>g</th>
</tr>
<?php while($rows = $stmt->fetch()):?>
<tr>
<td><?=$rows['id']?></td>
<td>
<?=$rows['food']?>
<select name="<?=$rows['id']?>">
<option value ='nothing'> choose one </option>
<?php while($rows2 = $stmt2->fetch()):?>
<option value="<?=$rows2['id']?>"><?=$rows2['food']?></option>
<?php endwhile;?>
</select>
</td>
<td><?=$rows['g']?>g</td>
</tr>
<?php endwhile;?>
<tr>
<td colspan='3'><input name='go' type='submit' value='OK'/></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['go']))
{
$stmt = $db->query($q);
while ($rows = $stmt->fetch())
{
echo $_POST[$rows['id']]; // trying to print values
}
}
?>