[英]Creating a drop down list in php from database with unknown amount of values
我在php中创建一个下拉列表,其中显示了该表中该列的每个项目。
一旦选择了一个选项,就会出现另一个下拉列表,以及从中选择了第一项的那一行中的其他值。 在我的数据库中,他们首先必须选择时间,然后在选择时间后,应该将与该时间关联的ID放在该下拉列表中,但是只有最后一个值是该下拉列表,即使该会话没有并没有选择第一个和第二个下拉列表。
我不明白为什么选择的值不是存储的值:
<?php
$select = '<select name = "flytime" size = "1">';
while ($row = mysql_fetch_array($rs))
{
$select.= '<option value="' .$row["ID"].'" > '.$row['flytime'].' </option>';
$_SESSION["flytime"] = $row["flytime"];
}
$time = $_SESSION["flytime];
$select.= '</select>';
echo $select;
echo $time;
?>
<p><input type="submit" value="submit" name ="submit" /></p>
<?php
mysql_close($conn); ?>
<?php
$conn = mysql_connect("localhost");
mysql_select_db("hello", $conn)
or die ('Database not found ' . mysql_error() );
$sql = "SELECT * FROM fly WHERE flytime = '".$flytime ."';";
$rs = mysql_query($sql, $conn)
or die ('Problem with query' . mysql_error());
?>
<?php
if(isset($_POST["submit"]))
{
$select = '<select name = "ID" size = "1">';
while ($row = mysql_fetch_array($rs))
{
$select.= '<option value="' .$row["flytime"].'" > '.$row['ID'].' </option>';
$_SESSION["ID"] = $row["ID"] ;
}
$select.= '</select>';
echo $select;
}
?>
您只能看到存储在会话变量中的选择中的最后一个值,因为您正在循环中覆盖会话变量的值:
while ($row = mysql_fetch_array($rs))
{
/* ... */
$_SESSION["flytime"] = $row["flytime"];
}
在上面的示例中,您经常使用相同的变量来保存$row["flytime"]
。 该变量仅包含一个值,这就是为什么您只保存循环中出现的最后一个值的原因。
解决方案提示:
要通过选择将值动态保存到PHP会话变量中,请查看AJAX
(可能与jQuery
结合使用)。
PHP没有这样的动态客户端行为-呈现页面后,PHP的工作就会完成,直到您加载下一页或使用AJAX请求为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.