【问题标题】:dynamic dropdown list-get values from mysql动态下拉列表 - 从 mysql 获取值
【发布时间】:2014-12-13 17:31:09
【问题描述】:

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

现在,我想获取查询的这些值并在 option=..... 字段中动态输入它们。此外,“NAME”部分必须与值相同。 示例:IF value1="abcd"

<option value="abcd" >abcd</option>

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

我做了这个但是没用

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

【问题讨论】:

  • 请注意,Distict 不是函数

标签: php html mysql drop-down-menu


【解决方案1】:

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

我建议你使用 mysqli 来避免安全问题,因为 mysql 将被弃用。也使用 include 而不是 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>

【讨论】:

  • 是否可以取选定的 $row['ak_ex'] 并在不同的框架中检查其值?
  • 是的,您必须调用 MySQL 脚本并使用 IF 语句检查行 ak_ex 的值并打印结果。如果这解决了您的问题,请选择已接受的答案,否则人们将失去回答您问题的愿望。谢谢
  • 我正在这样做并且不工作 $query_ak='SELECT DISTINCT (ak_ex) FROM table_name'; $result_ak = mysql_query ($query_ak) 或死 (mysql_error()); if (isset($_POST['go'])) { //elegxei an to while ($row = mysqli_fetch_assoc($result_ak)) { if ($_POST["exa"] = ".$row['ak_ex'] ." ) { $query= "SELECT * FROM table_name where ak_ex='.$row['ak_ex'].'"; $result= mysql_query($query) or die ('Query failed: ' .mysql_error());
  • Distinct 不是一个函数,你必须像这样使用它:SELECT DISTINCT City FROM Customers;
【解决方案2】:

您应该将&lt;option&gt;...&lt;/option&gt; 放在循环内。将提交按钮放在&lt;/select&gt; 标记之外。你也有语法错误。 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>

【讨论】:

    猜你喜欢
    • 2015-12-05
    • 1970-01-01
    • 2020-01-07
    • 2019-04-08
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    相关资源
    最近更新 更多