Ajax和MySQL中的两个下拉列表

时间:2010-03-24 11:20:57

标签: php javascript ajax

我正在尝试学习一些Ajax和MySQL ......

基本上,我现在的代码类似于:http://www.w3schools.com/PHP/php_ajax_database.asp

我想知道如何修改这些代码(包括html,javascript和php)来创建两个下拉列表。第一个下拉列表将用于选择姓氏(例如Swanson),第二个下拉列表将用于选择Hometown(例如Quahog)。然后用户点击“提交”按钮,查询将返回匹配的结果(例如,居住在Quahog的所有Swansons)。

我非常感谢所有的想法!

1 个答案:

答案 0 :(得分:1)

与html页面唯一的主要区别是添加了另一个下拉列表,添加了提交按钮,并删除了onchange事件(假设您希望删除此项,因为您依赖于提交按钮)。所以而不是:

<form>
Select a User:
<select name="users" onchange="showUser(this.value)">
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Glenn Quagmire</option>
<option value="4">Joseph Swanson</option>
</select>
</form>

你现在有:

<form>
Select a User:
<select name="lastname" id="lastname">
<option value="Griffin">Griffin</option>
<option value="Quagmire">Quagmire</option>
<option value="Swanson">Swanson</option>
</select>
<br>
Select a Hometown:
<select name="hometown" id="hometown">
<option value="Quahog">Quahog</option>
<option value="Newport">Newport</option>
</select>
<input type="submit" value="Submit" onclick="showUser(Document.getElementById('lastname').value, Document.getElementById('hometown'))">
</form>

javascript所需的唯一更改是更改showUser函数以获取和处理两个输入。声明变成: function showUser(lastname,hometown)

而不是行:

url=url+"?q="+str;

你需要:

url=url+"?lname="+lastname+"&town="+hometown;

然后在PHP中,您只需要更改变量赋值和正在执行的查询。所以:

$q=$_GET["q"];

成为:

$lname=$_GET["lname"]; $town=$_GET["town"];

并且:

$sql="SELECT * FROM user WHERE id = '".$q."'";

成为:

$sql="SELECT * FROM user WHERE lastname = '".$lname."' AND hometown = '".$town."'";