Форма с двумя селектами не работает. Нужна помощь...

Maxxon

Новичок
Форма с двумя селектами не работает. Нужна помощь...

Доброго времени суток!
Есть у меня проблема над которой бьюсь уже несколько дней. Пролистал кучу книжек и форумов.
Есть необходимость перенести базу данных из Access в PHP+MySQL. Перенос данных проблем не вызывает, однако перенести интерфейс пока не получается.
Обрисую пока только один момент, самый простой :) .

Пусть в базе данных есть таблица “Nets”, в ней столбцы: “Region”, “City”.
Пример данных:
Ленинградская область | Город 11
Московская область | Город 21
Московская область | Город 22

Чего я хочу добиться:
1) Раскрывающийся список, в котором пользователь выбирает регион.
2) Раскрывающийся список, в котором пользователь выбирает город, с учетом выбранного региона.
Запрос, понятное дело, простой: «SELECT Nets.City FROM Nets WHERE (Nets.Region=”Значение из 1го списка”)»

Пункт 1 я сделал. Однако получить значение раскрывающегося списка и записать его в какую-либо переменную php мне не дает.
Также, когда я пытаюсь переслать значение из формы (html) в скрипт (php) методом post, php мне выдает ошибку, типа не знает такую переменную, хотя во всех книжках, которые мне попались написано именно так. Знакомые сказали, что это работает только в новых версиях PHP (у меня 5.хх и все равно не пашет), а в старых надо это делать через $_HTTP_POST[].
Может в таком случае надо данные из одного списка пересылать в запрос тоже через какую-то стандартную переменную или массив?
Может кто-нибудь сможет что-нибудь посоветовать, дать ссылку на похожий пример или описать его здесь?
С уважением, Максим.
 

chisto_tolyan

Враг народа
Знакомые сказали, что это работает только в новых версиях PHP
врут знакомые)про суперглобальные массивы слыхал?
форму делаешь типа:
Код:
<FORM NAME="bla" ACTION="script.php" METHOD="POST">
<SELECT NAME="region">
<OPTION VALUE="1">Колыма</OPTION>
<OPTION VALUE="2">Мордовия</OPTION>
</SELECT>

<SELECT NAME="city">
<OPTION VALUE="1">Магадан</OPTION>
<OPTION VALUE="2">Гондурас</OPTION>
</SELECT>
</FORM>
в скрипте получаешь переменные:
PHP:
$region = $_POST['region'];
$city = $_POST['city'];
и дальше
PHP:
$q = "SELECT * FROM Nets WHERE region=".mysql_real_escape_string($region)." AND city=".mysql_real_escape_string($city);
 

Maxxon

Новичок
to: chisto_tolyan
Да, не спорю, данные передаются из html в php таким образом. Но мне выбор города надо реализовать с учетом уже выбранного региона в этой же форме :( так как в России куча регионов, а в каждом, скажем, по сотне городов, база то глобальная будет... Выбирать в одном списке регион, а в другом город (один из тысяч) проблематично :)
Кстати, а как реализовать автозаполнение? Есть в php встроенные функции для этого?

Так что скорее всего, форму надо прописывать в файле php и вызывать не script.php, а себя, с новым значением...

В моем случае, первый список получается таким макаром:

<php>
$b=mysql_query("SELECT region.region FROM region", $a);
$number = MYSQL_NUMROWS($b);
$i = 0;
IF ($number == 0)
{
PRINT "<CENTER><P>Oops! Database is free...</CENTER>";
}
ELSEIF ($number > 0)
{
PRINT "<P>Выберите регион:<BR>";
echo "<select name 'reg' size=1 >";
WHILE ($i < $number)
{
$name = mysql_result($b,$i,"region");
echo "<option value=".$i.">".$name."</option>";
$i++;
}
PRINT "</CENTER>";
}
echo "</select>";
</php>

А вот значение 'reg' мне не получить пока...
Кстати, а зачем "mysql_real_escape_string"?
 

Vander

Новичок
Сделай в селекте enabled:false пока не выбран верхний параметр (Регион для города например)
и весь на селекты

onChange(form.submit()) (не работающий код)
 

chisto_tolyan

Враг народа
А вот значение 'reg' мне не получить пока...
я же писал - через $_POST
Кстати, а зачем "mysql_real_escape_string"?
http://phpfaq.ru/slashes
чтоб нехорошие дяди ничего лишнего тебе в запрос не отправили
Делай пошагово выбор региона, т.е.:
Шаг 1 - выберите регион (юзер выбирает регион клацает "дальше")
Шаг 2 - выберите город(по выбраному юзером региону строешь список городов, выбраный регион запихиваешь в hidden поле, если нужно будет с ним позже работать)
 

zarus

Хитрожопый макак
Делай пошагово выбор региона, т.е.:
Шаг 1 - выберите регион (юзер выбирает регион клацает "дальше")
Шаг 2 - выберите город(по выбраному юзером региону строешь список городов, выбраный регион запихиваешь в hidden поле, если нужно будет с ним позже работать)
о.О А если юзеру другой город захочется выбрать после этого?
Идите хтмл учите, особенно обратите внимание на параметр selected="selected" у <option>
 
Сверху