我有以下代码:
<form action="MovieDatabase.php" method='post'>
<select name="director_movie">
<?php
$sql = mysqli_query($mysql, "SELECT DISTINCT Title FROM Film2");
while ($row = $sql->fetch_assoc()){
?>
<option value="director_movie1" id="film_id"><?php echo $row['Title']; ?></option>
<?php
// close while loop
}
?>
</form>
对于下拉列表,它使用SQL表中的值。因此下拉列表具有电影标题的价值。
当我尝试从 MovieDatabase.php 访问所选值时:
$_POST['director_movie'];
当我尝试回应它时,它只显示选项值 direcotr_movie1 ,这不是我正在寻找的。在这种情况下,我想获得从下拉列表中选择的电影的标题。
我做错了什么?
答案 0 :(得分:1)
您在此行代码中对 每个选项 的 相同值 进行了硬编码: -
<option value="director_movie1" id="film_id"><?php echo $row['Title']; ?></option>
这就是 每次 获得同等价值的原因。
将其更改为: -
<option value="<?php echo $row['Title'];?>"><?php echo $row['Title'];?></option>
现在它可以正常工作。
注意: - id
必须对每个HTML元素都是唯一的,因此请删除重复的id
(我认为您不需要这样做)
答案 1 :(得分:1)
更改此
<option value="director_movie1" id="film_id"><?php echo $row['Title']; ?></option>
到
<option value=<?php echo $row['Title']; ?> id="film_id"><?php echo $row['Title']; ?></option>
答案 2 :(得分:0)
您正在硬编码您的价值<option value="director_movie1" id="film_id">
并想知道您的表单提交硬编码值的原因?
您选择中显示的电影标题就是用户可以看到的内容。您的表单会将您输入的内容提交到value=<your required information here>
另一个注意事项:当您想要根据所选标题获取电影信息时,使用标题作为字段可能会导致使用除字符/数字之外的任何内容时出现问题。更好地使用电影的ID
答案 3 :(得分:0)
1st:将您的值属性更改为value="<?php echo $row['Title']; ?>"
第二名 ID属性对于每个元素都是唯一的。将其从选项标记id="film_id"
<option value="<?php echo $row['Title']; ?>" ><?php echo $row['Title']; ?></option>
答案 4 :(得分:0)
更改行
<option value="director_movie1" id="film_id"><?php echo $row['Title']; ?></option>
与
<option value="<?php echo $row['Title']; ?>" ><?php echo $row['Title']; ?></option>
现在您将获得动态值,不同的选项id
也不能为所有