我想做下面的事情,这里是简单的选择,从db获取信息。我有一个拥有id / city / people.SO的数据库这就像一些例子选择
Select1|Select2|
City1 |2
City2 |Poeple2
City3 |People3
City4 |People1
City5 |PopleFromFirstCity
这是我想要做的,当我从第一个选择中选择一个城市时,我希望在第二个选择是Select2,输出将自动更改为我在第一个选择的内容,所以如果我选择City1,第二个选择 PeopleFromFirstCity 和 People1
答案 0 :(得分:1)
首先选择这个:
<form>
Select city: <select name="cities" onchange="showCity(this.value)">
<option value="0">Chose city...</option>
<?php
$sql="SELECT id,city FROM table1 ORDER BY ID DESC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo"<option value=" . $row[id] . ">" . $row[city] . "</option>";
}
?>
</select></form>
对于selection2的输出,make div:
<div id="txtHint"></div>
现在制作包含人物的第二个表table2,并制作.js文件
var xmlhttp;
function showCity(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="http://fullpathtoselection2file/selection2.php"; // Example: http://www.site.com/files/selection2.php
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
在你的文件中实现选择1这个js文件。 现在做出选择2:
<?php
// Get city id
$q=$_GET["q"];
// Select from SQL where city = city id
$sql="SELECT peoples,city_id FROM table2 WHERE city_id = '".$q."' order by id desc";
$result = mysql_query($sql);
// echo it
while($row = mysql_fetch_array($result))
{
echo $row['peoples'];
}
你有2张桌子。 table1 for cities second table2 for peoples。例如,从管理面板更新数据库时,需要更新2个表。为人民和城市。 对于表1,需要包含:id,city ...表2需要包含id,peoples,city_id。
代码未经过测试。