填充下拉菜单-PHP Ajax MySQL

我的HTML页面上有2个下拉列表:第一个下拉列表包含数据库列名称,第二个下拉列表将基于该数据库列名称进行填充,

我有一个带有字段的表:<Student Name, Degree, City>以下是条目;

1. "A", "BS", "New York"

2. "B", "BS", "Chicago"

3. "C", "MS", "Boston"

4. "D", "MS", "New York"

因此,我的第一个下拉列表将包含列名称,即“ Degree”和“ City”。

如果我选择“学位”,则第二个下拉列表将填充“ BS”和“ MS”;如果我选择“城市”,则第二个下拉列表应选择“纽约”,“波士顿”和“芝加哥”。

我该如何进行实施?

[添加我的代码]:

changeSecond(first)方法与您建议的完全相同

<body>

<form method="POST" action="" name="mainForm">

<table>

<tr>

<td> Filter by: </td>

<td>

<div id="first">

<select onChange="changeSecond(this.value)">

<option value="1">All</option>

<option value="2">Degree</option>

<option value="3">City</option>

</select>

</td>

</tr>

<tr>

<td>&nbsp</td>

<td>

<div id="second">

<select name="val">

<option value=""></option>

</select>

</div>

</td>

</tr>

</table>

</form>

</body>

这是您建议的second_script.php:

<?

$link = mysql_connect("localhost", "root", "");

if (!$link)

{

die('Could not connect: ' . mysql_error());

}

if (mysql_select_db("myDatabase", $link))

{

$first=mysql_real_escape_string($_REQUEST["first"]);

$query="SELECT ".$first." FROM myTable GROUP BY ".$first;

$data=mysql_query($query);

echo "<select id=\"second\">";

while($row=mysql_fetch_row($data))

{

echo "<option value=\"".$row[0]."\">".$row[0]."</option>";

}

echo "</select>";

}

echo mysql_error();

?>

回答:

如果您想要一个更动态的解决方案(可以容纳对后台数据库的更改),则可以在页面上执行以下操作:

<script>

function changeSecond(first){

var xmlhttp;

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

var res=xmlhttp.responseText;

document.getElementById("second").innerHTML=res;

}

}

xmlhttp.open("GET","second_script.php?first="+first,true);

xmlhttp.send();

}

</script>

...

<select onChange="changeSecond(this.value)">

<option value="Degree">Degree</option>

<option value="City">City</option>

</select>

<div id="second"><select><option value=""></option></select></div>

然后是一个类似于以下内容的脚本:

<?php

//database connection

$first=mysql_real_escape_string($_REQUEST["first"]);

$query="SELECT ".$first." FROM tablename GROUP BY ".$first;

$data=mysql_query($query);

echo "<select>";

while($row=mysql_fetch_row($data)){

echo "<option value=\"".$row[0]."\">".$row[0]."</option>";

}

echo "</select>";

?>

我想为了获得真正的灵活性,您还想在上面类似的另一个脚本中使用mysql_field_name动态填充第一个

以上是 填充下拉菜单-PHP Ajax MySQL 的全部内容, 来源链接: utcz.com/qa/402208.html

回到顶部