动态下拉列表 - 从mysql获取值

时间:2014-12-13 17:31:10

标签: php html mysql drop-down-menu

我有这个代码。它是一个下拉列表和一个提交按钮。 我有一个查询" SELECT * DISTINCT column_name FROM table_name"结果有15个值

现在,我想获取查询的这些值并动态地在选项= .....字段中输入它们。还要" NAME" section必须与值相同。 例如:IF value1 =" abcd"



<option value="abcd" >abcd</option>
&#13;
&#13;
&#13;

&#13;
&#13;
<!DOCTYPE html>
<html>
<body>
<form  method="post" target=".....php">
<select name="exa" >
    <option value="value1" >NAME 1</option>
    <option value="value2" >NAME 2</option>
    <option value="value3" >NAME 3</option>
	<option value="value4" >NAME 4</option>
    <option value="value5" >NAME 5</option>
    <option value="value6" >NAME 6</option>
	<option value="value7" >NAME 7</option>
    <option value="value8" >NAME 8</option>
    <option value="value9" > NAME 9</option>
	<option value="value10" >NAME 10</option>
    <option value="value11" >NAME 11</option>
    <option value="value12" >NAME 12</option>
	<option value="value13" >NAME 13</option>
    <option value="value14" >NAME 14</option>
    <option value="value15" >NAME 15</option>
</select>

<form action=$value>
<input type="submit" value="GO!"  />
</form>
</body>
</html>
&#13;
&#13;
&#13;

我做了这个,但没有工作

&#13;
&#13;
<!DOCTYPE html>
<html>
<body>
<form  method="post"  >
<select name="exa" >
<?php
 include_once "LOGIN TO DB SCRIPT";
 $query_ak='SELECT DISTINCT (column_name) FROM table_name';
 $result = mysql_query ($query_ak) or die (mysql_error);
 
    while ($row =  mysql_fetch_assoc($result)) {
    	}
	?>
	<option value = $row['ak_ex']> "$row['ak_ex']"</option>
 
<input type="submit" value="GO!"  name="go"/>
</select>
</form>
</body>
</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您应该将<option>...</option>置于循环内。将提交按钮放在</select>标记之外。您还有语法错误。 mysql_error应为mysql_error()

<!DOCTYPE html>
<html>
<body>
<form  method="post"  >
<?php
include_once "LOGIN TO DB SCRIPT";
$query_ak='SELECT DISTINCT (column_name) FROM table_name';
$result = mysql_query ($query_ak) or die (mysql_error());
?>
<select name="exa" >
    <?php
    while ($row =  mysql_fetch_assoc($result)) {
        echo '<option value="'.$row['ak_ex'].'">'.$row['ak_ex'].'</option>';
    }
    ?>
</select>
<input type="submit" value="GO!"  name="go"/>
</form>
</body>
</html>

答案 1 :(得分:1)

你犯了很多错误,首先你把OPTION对象放在WHILE循环之外,然后把提交按钮放在SELECT对象里面,最后你把distinct写成函数,正确的语法如下。

我建议你使用mysqli来避免安全问题,因为mysql将被弃用。使用也包括而不是include_once,因为它需要PHP的额外工作来渲染文件(差别很小,但欢迎一切)。

我已修改代码以使用它,您可以在http://php.net/manual/it/book.mysqli.php找到修改脚本以使用mysqli的所有信息

    <html>
    <body>
    <form  method="post"  >
    <?php
    // LOGIN TO DATABASE SCRIPT WRITTEN FOR MYSQLI
    $mysqli = new mysqli("localhost", "user", "password", "database");
    if ($mysqli->connect_errno) {
        echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " .            $mysqli->connect_error;
     }
    // END OF LOGIN TO DB SCRIPT
    include DATABASE CONFIGURATION;
    $query_ak='SELECT DISTINCT column_name FROM table_name';
    $result = $mysqli->query($query_ak);
    ?>
    <select name="exa" >
        <?php
        while ($row =  mysqli_fetch_assoc($result)) {
            echo '<option value="'.$row['ak_ex'].'">'.$row['ak_ex'].'</option>';
        }
        ?>
    </select>
    <input type="submit" value="GO!"  name="go"/>
    </form>
    </body>
    </html>