【发布时间】:2018-10-13 08:08:31
【问题描述】:
我有一个下拉菜单,其列名与数据库表中的列名相同。我已经在下拉菜单的选项标签中插入了每个列名。这些列在数据库中有行数。 之后,我有另一个下拉菜单。我想在上一个下拉菜单中显示所选列的所有数据行。 例如。我在第一个下拉列表中将列名作为 a、b、c、d,并且每列都有数据库表中的数据。所以,如果我在第一个下拉菜单中选择 A;它在下一个下拉列表中显示 A 的所有数据行。代码如下:
<select name="first">
<option selected="true" disabled="disabled">Select an Option</option>
<option value="select_all">Select All</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">c</option>
</select>
<?php
if(isset($_POST['first'])){
$first=$_POST['first'];
}
?>
<select name="firstres" id="firstres"><option style="display:none;" selected; value="">---Select an option---</option><?php
@mysql_connect('localhost', 'root', '');
@mysql_select_db('db');
$first=$_POST['first'];
$sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'db' AND TABLE_NAME = 'tbl' AND COLUMN_NAME LIKE '" . $_POST["first"] . "'";
$result = @mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo "<option value=' " . $row['first'] ."'>" . $row['first'] ."</option>";
}
?>
</select>
问题是;我没有在第二个下拉菜单中获得列行。
【问题讨论】:
-
因为你设置了这个条件 if(isset($_POST['first'])) 并且你不发布表单数据它只适用于表单提交。否则,你需要先使用此的下拉更改事件
-
所以我必须为此使用 ajax 吗?
-
是的,你需要使用ajax否则使用表单提交
-
另外,你需要提高你的代码标准,不要在选择输入上写数据库查询
-
那我应该把那个查询放在哪里?