沃梦达 / 编程问答 / php问题 / 正文

如何使<option selected=“selected">由

How to make lt;option selected=quot;selectedquot;gt; set by MySQL and PHP?(如何使lt;option selected=“selectedgt;由 MySQL 和 PHP 设置?)

本文介绍了如何使<option selected=“selected">由 MySQL 和 PHP 设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何让被MySQL和PHP设置?

How to make <option selected="selected"> set by MySQL and PHP?

我的代码:

echo '<select>';
$tempholder = array();
$rs = mysql_query("SELECT * FROM id ORDER BY year");
$nr = mysql_num_rows($rs);
for ($i=0; $i<$nr; $i++){
    $r = mysql_fetch_array($rs);
    //if($year==$r["year"]){ $selected=' selected="selected"'; }//doesn't work so
    if (!in_array($r['year'], $tempholder)){
        $tempholder[$i] = $r['year'];
        echo "<option>".$r["year"]."</option>";//<option$selected>...
    }
}
unset($tempholder);
echo '</select>';

推荐答案

除了修复 =/== 问题之外,您还可以省去数组查找和通过要求数据库在查询中每年只返回一次,使代码更简单:

In addition to fixing the =/== gotcha, you can save yourself the array lookup and make the code simpler by asking the database to return each year only once in the query:

<select>
    <?php $result= mysql_query('SELECT DISTINCT year FROM id ORDER BY year'); ?>
    <?php while($row= mysql_fetch_assoc($result)) { ?>
        <option <?php if ($row['year']==$year) { ?>selected="selected"<?php } ?>>
            <?php echo htmlspecialchars($row['year']); ?>
        </option>
    <?php } ?>
</select>

(您可能不需要 htmlspecialchars() 假设这是一个数字年份,但总是对 HTML 模板中包含的任何纯文本进行 HTML 转义是一种很好的做法.您可以使用较短的名称来执行 echo htmlspecialchars 以减少打字.)

(You may not need htmlspecialchars() assuming that's a numeric year, but it's good practice always to HTML-escape any plain text you include in an HTML template. You can define a function with a shorter name to do the echo htmlspecialchars to cut down on typing. )

这篇关于如何使&lt;option selected=“selected"&gt;由 MySQL 和 PHP 设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何使&lt;option selected=“selected"&gt;由

基础教程推荐