Два выпадающих списка в Ajax и MySQL - PullRequest
0 голосов
/ 24 марта 2010

Я пытаюсь выучить немного Ajax и MySQL ...

В основном код, который у меня есть сейчас, похож на: http://www.w3schools.com/PHP/php_ajax_database.asp

Мне было интересно, как мне изменить эти коды (html, javascript и php), чтобы создать два выпадающих списка. Первый выпадающий список будет использоваться для выбора фамилии (например, Swanson), а второй выпадающий список будет использоваться для выбора родного города (например, Quahog). Затем пользователь нажимает кнопку «Отправить», и запрос возвращает результаты сопоставления (например, все Swansons, живущие в Quahog).

Я был бы очень благодарен за все идеи!

1 Ответ

1 голос
/ 24 марта 2010

Единственным существенным отличием 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 для обработки и обработки двух входных данных. Таким образом, объявление становится: функция showUser (фамилия, родной город)

и вместо строки:

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."'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...