无法从PHP,SQL中的下拉列表中获取选定值

时间:2017-08-17 10:37:34

标签: php html mysql

我有以下代码:

<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 ,这不是我正在寻找的。在这种情况下,我想获得从下拉列表中选择的电影的标题。

我做错了什么?

5 个答案:

答案 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也不能为所有

提供相同的值