从数据库php填充下拉框

时间:2014-10-28 22:35:06

标签: php drop-down-menu

我有一些非常简单的代码,它没有做我想做的事情。我只是想让它在我的表格中输入年份类别的唯一编号并将其输入到下拉框中,但是使用此代码我只能得到一个选项:$ row [' year']

感谢任何帮助。

<!DOCTYPE html>
<html>
<form name="testform" method='POST' action='mainck.php'>
<?Php
require "config.php";

echo "<br>Select year first <select name=year id ='s1' onchange=AjaxFunction();>
<option value=>Select a Year</option>";

$sql="SELECT DISTINCT year from PlayerRegSeason";

foreach ($dbo->query(&sql) as $row) {
    echo "<option value=$row['year']>$row['year']</option>";
    }
?>
</select>
</form>
</html>

2 个答案:

答案 0 :(得分:1)

在标记中遗漏了很多引号。关于双引号和单引号的一致性更好,但以下情况至少应该起作用:

<!DOCTYPE html>
<html>
<form name="testform" method='POST' action='mainck.php'>
<?php
require "config.php";

echo "<br>Select year first <select name='year' id='s1' onchange='AjaxFunction();'>
<option value=''>Select a Year</option>";

$sql="SELECT DISTINCT year from PlayerRegSeason";

foreach ($dbo->query($sql) as $row) {
    echo "<option value='".$row['year']."'>".$row['year']."</option>";
    }
?>
</select>
</form>
</html>

答案 1 :(得分:0)

正如Ben所说,一些变化会使其更有可能发挥作用。但我会保留那些不需要PHP的东西。一定要正确使用HTML(它不会解决这个问题,但这是一个很好的做法,像HEAD和BODY这样的标签)。

如果仍然无法正常工作,请务必直接在phpMyAdmin或MySQL客户端上查看您的查询。当我遇到这样的情况时,我通常会做的另一件事是 print_r()我的回归。

PS:再次检查你的 foreach($ dbo-&gt;查询(&amp; sql )为$ row){如果&amp; < / strong>是你想要的标志。 (我不确定&amp; 符号会在那里做什么,所以如果我错了,我就不好。)

我在代码中更改了一些内容,请查看:

<!DOCTYPE html>
<html>
    <body>
        <form name="testform" method='POST' action='mainck.php'>
            <label for="s1">Select year first</label>
            <select name='year' id ='s1' onchange='AjaxFunction();'>
                 <option value=''>Select a Year</option>
<?php
    require "config.php";

    echo "";

    $sql="SELECT DISTINCT year from PlayerRegSeason";

    $return = $dbo->query($sql);
    print_r($return);

    foreach ($return as $row) {
        echo "<option value='".$row['year']."'>".$row['year']."</option>";
    }
?>
            </select>
        </form>
    </body>
</html>