从数据库中自动选择

时间:2011-04-20 11:52:41

标签: php javascript jquery mysql html

我想做下面的事情,这里是简单的选择,从db获取信息。我有一个拥有id / city / people.SO的数据库这就像一些例子选择

  Select1|Select2|
    City1   |2    
    City2   |Poeple2      
    City3   |People3      
    City4   |People1        
    City5   |PopleFromFirstCity  

这是我想要做的,当我从第一个选择中选择一个城市时,我希望在第二个选择是Select2,输出将自动更改为我在第一个选择的内容,所以如果我选择City1,第二个选择 PeopleFromFirstCity People1

1 个答案:

答案 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。

代码未经过测试。