【问题标题】:Can't get selected value from dropdown in PHP, SQL无法从 PHP、SQL 的下拉列表中获取选定的值
【发布时间】:2018-01-25 17:40:14
【问题描述】:

我有以下代码:

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

我做错了什么?

【问题讨论】:

  • 您的所有选项都具有相同的值 (director_movie1)。为每一行使用从数据库中获取的 ID。
  • 当你使用 $_POST['some_name'].. 你会得到value=中设置的任何内容...如果你想要电影标题然后设置value=$row['Title']

标签: php html mysql


【解决方案1】:

您在此行的代码中为 每个选项 硬编码 same value:-

<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(我认为您不需要这样做)

【讨论】:

  • 是的,有道理。谢谢!
  • @anthony 很高兴为您提供帮助。干杯 :):)
  • @AlivetoDie 我已成功获取下拉列表中的 client_name,现在我想根据所选下拉值在文本框中显示 client_village。怎么样?
  • @shubhamshah 通过正确输入和代码工作提出一个新问题。在评论中提出新问题不是一个好主意。你可以参考我的链接,如果我有时间我会尝试在那里回答你。谢谢
【解决方案2】:

改变这个

<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>

【讨论】:

    【解决方案3】:

    您正在硬编码您的值 &lt;option value="director_movie1" id="film_id"&gt; 并想知道为什么您的表单提交您的硬编码值?

    您选择的电影标题正是用户可以看到的。您的表单提交您输入的内容value=&lt;your required information here&gt;

    另外注意:当您想根据所选标题获取电影信息时,使用除字符/数字以外的任何内容作为标题时,使用标题作为字段可能会导致问题。最好使用电影的 ID

    【讨论】:

      【解决方案4】:

      1st :将你的值属性改为value="&lt;?php echo $row['Title']; ?&gt;"

      第二个: Id 属性对于每个元素都是唯一的。从选项标签中删除它id="film_id"

       <option value="<?php echo $row['Title']; ?>" ><?php echo $row['Title']; ?></option>
      

      【讨论】:

        【解决方案5】:

        更改下一行

        <option value="director_movie1" id="film_id"><?php echo $row['Title']; ?></option>
        

        <option value="<?php echo $row['Title']; ?>" ><?php echo $row['Title']; ?></option>
        

        现在您将获得不同选项的动态值,而且id 不能对所有人都具有相同的值

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-07
          相关资源
          最近更新 更多