【问题标题】:select the name as selected in dropdown选择下拉列表中选择的名称
【发布时间】:2016-08-18 11:15:20
【问题描述】:

查询从上帝表中选择上帝

$sth =$dbh->prepare("SELECT god_id,god_name_ml,god_name_en,image,info_ml,info_en,details_ml,
       details_en,rounds_ml,rounds_en,mantra_ml,mantra_en,display_order FROM god");
       $sth->execute();

查询神表选神,这里god_id是神表的外键

   $stmt = $dbh->prepare("SELECT deity_id,god_id,deity_name_ml,deity_name_en,info_ml,info_en,details_ml,
      details_en,mantra_ml,mantra_en,display_order FROM deity
      WHERE deity_id = :deity_id");
    $stmt->bindValue(':deity_id',$deity_id,PDO::PARAM_INT);
    $stmt->execute();
    $result = $stmt->fetchAll();
    $temp_array=$result[0];
    $god_id=$temp_array['god_id'];

在上帝表的下拉菜单中显示上帝的显示代码

<?php while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { ?>
       <option value="<?php echo $row['god_id'];?>">
         <?php echo $row['god_name_en']; ?>
       </option>
       <?php } ?>
       </option>
   </select>

我需要的是,在下拉列表中,神表中给定的 god_id 存在于神表中,使其成为选中状态。 只有我需要被选中的 Id 被选中

【问题讨论】:

  • 您可以从神表中创建一个带有神 id 的数组。在 while 循环中,您可以检查 God id 是否存在。如果存在,则显示选中。您可以直接从数据库中检查,而不是创建数组,但我不建议如果您有 1000 个上帝,此检查将执行 1000 次,这会减慢进程
  • @Ms.Nehal 我检查了但我的 ciodeing 有一些变化。请查看我更新的问题
  • @sherinks,请查看我的更新答案
  • 谢谢。它现在正在工作.. @Ms.Nehal

标签: php mysql pdo while-loop


【解决方案1】:

只需检查两个 id 是否相同,试试这个:

<?php while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { ?>
  <option <?php if($row['god_id'] == $god_id) { echo "selected='selected'"; } ?> value="<?php echo $row['god_id'];?>"><?php echo $row['god_name_en']; ?></option>
<?php } ?>
</option>
</select>

【讨论】:

  • @sherinks,很高兴为您提供帮助! :) 如果它有帮助或者你觉得它有用,请随意投票/接受。
【解决方案2】:

在编写每个选项时,比较 God_Id from God 表是否与当前选项的 god_ID 匹配。如果它确实在值之后附加了“选定”文本。

所以选择的选项看起来像

<option value='1' selected>foo</option>

【讨论】:

    【解决方案3】:

    试试这个:

    <?php while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { ?>
      <option <?php if($row['id'] == $stmt->god_id) { echo "selected='selected'"; } ?> value="<?php echo $row['god_id'];?>"><?php echo $row['god_name_en']; ?></option>
    <?php } ?>
                                              </option>
                                            </select>
    

    【讨论】:

    • 这里我使用您的代码并更改而不是 $row[id],$stmt['id'] 是 $row[god_id],$stmt['god_id'] 并运行但出现错误比如“不能使用对象类型的 pdo 语句作为数组”@Dhara Parmar
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多