|
|
|
| Добрый день!
Пытаюсь сделать форму для ввода новой компании.
В начале пользователь выбирает свой регион.
<
tr>
<td width="200" valign="top"><strong>Регион:</td>
<td width="550" align="left" style='background-color:#f0f0f0'>
<select>
<?php
/// узнаем регион
$result_region = mysql_query("SELECT * FROM region", $db);
while ($myrow_region = mysql_fetch_array($result_region)) {
?>
<option><?php echo $myrow_region['name']; ?></option>
<?php
}
?>
</select>
</td>
</tr>
|
Выбрав регион выводим районы этого региона
<tr>
<td width="200" valign="top"><strong>Район:</td>
<td width="550" align="left" style='background-color:#f0f0f0'>
<select>
<?php
/// узнаем area
$id_area = $myrow_region[id_area];
$result_area = mysql_query("SELECT * FROM area WHERE id_area='" . mysql_real_escape_string($id_area) . "'", $db);
while ($myrow_area = mysql_fetch_array($result_area)) {
?>
<option><?php echo $myrow_area['name']; ?></option>
<?php
}
?>
</select>
</td>
</tr>
|
Районы не выбираются. Почему? | |
|
|
|
|
|
|
|
для: liberty
(15.03.2013 в 08:51)
| | надеюсь, кто-нибудь укажет на ошибку. | |
|
|
|
|
|
|
|
для: liberty
(16.03.2013 в 09:28)
| | Если Вы покажете достаточно исходных данных для ответа, то обязательно кто-нибудь укажет.
Пока что вы сказали примерно следующее:
Пытаюсь сварить борщ .... картошка выглядит вот-так, капуста выглядит вот так ... Почему борщ не вкусный? | |
|
|
|
|
|
|
|
для: Sfinks
(16.03.2013 в 12:11)
| | попробую. выбрав регион, надо показать следующей форме что надо выбрать город из выбранного региона.
но как? | |
|
|
|
|
|
|
|
для: liberty
(16.03.2013 в 21:06)
| | И где тут форма?
И что такое "<option><?php echo $myrow_region['name']; ?></option>" без атрибута value?
И какое вообще отношение имеет это все к MySQL? С запросами вроде нет проблем. | |
|
|
|
|
|
|
|
для: Sfinks
(16.03.2013 в 21:47)
| | вот отсюда
<tr>
<td width="200" valign="top"><strong>Район:</td>
<td width="550" align="left" style='background-color:#f0f0f0'>
<select>
<?php
/// узнаем area
$id_area = $myrow_region[id_area];
$result_area = mysql_query("SELECT * FROM area WHERE id_area='" . mysql_real_escape_string($id_area) . "'", $db);
while ($myrow_area = mysql_fetch_array($result_area)) {
?>
<option><?php echo $myrow_area['name']; ?></option>
<?php
}
?>
</select>
</td>
</tr>
|
$id_area = $myrow_region[id_area]; - известен.
почему не выбирает?
вроде все верно | |
|
|
|
|
|
|
|
для: liberty
(17.03.2013 в 00:52)
| | > $id_area = $myrow_region[id_area]; - известен.
Кому известен???
Вы вообще не представляете как это все работает?
PHP формирует html страницу и отдает ее браузеру. Все! На этом работа пхп завершена! Скрипт умер! Дальше можете хоть что делать на странице - пхп об этом не узнает! То что у вас все это (PHP и HTML) написано вперемешку - не означает, что оно будет работать одновременно!
После получения вашей страницы посмотрите ее исходный код и осознайте наконец, что то что вы видите - это результат работы уже умершего пхп скрипта.
они в принципе не могут работать одновременно! PHP выполняется на сервере, HTML+JS отображаются на клиенте (в браузере). А между ними - HTTP-протокол.
Чтобы скрипт узнал о каких-то действиях пользователя, ему нужно об этом дополнительно сообщить - Выполнить сабмит формы или AJAX-запрос.
Но при этом это будет не тот же самый экземпляр скрипта, который уже знает какие-то данные и переменные, а новый, который ничего сам по себе не знает. И все что ему необходимо знать, ему нужно передать из формы методами POST или GET, о которых вам уже тоже говорили.
И результат работы скрипта будет передан браузеру и его нужно будет обработать. Если запрос был сгенерирован сабмитом формы, то результатом должен быть полный код страницы и браузер ее сам перересует. Если запрос был произведен по AJAX, то результат возможен в разных вариантах и его необходимо обрабатывать на клиенте JavaScript'ом.
Самое главное что вам нужно осознать - это что в тот момент, когда вы что-то увидели в браузере, на сервере уже ничего не выполняется и сервер не знает о ваших действиях. | |
|
|
|
|
|
|
|
для: liberty
(17.03.2013 в 00:52)
| | Еще раз повторюсь, что это не имеет отношения к MySQL!
Но раз уж тут начали, то я закончу.
Приведу максимально упрощенный пример:
<!-- Участок кода, который выводится всегда -->
<?php
error_reporting(E_ALL ^ E_NOTICE);
print_r($_POST)
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="gorod">
<option value="g1"<?=($_POST['gorod']=='g1'?' selected':'')?>>город 1</option>
<option value="g2"<?=($_POST['gorod']=='g2'?' selected':'')?>>город 2</option>
<option value="g3"<?=($_POST['gorod']=='g3'?' selected':'')?>>город 3</option>
</select>
<?php
if(key_exists('gorod',$_POST))
{ // Участок кода, который выполняется только если выбран город
echo'<br><select name="firm">'; // это выводится не зависимо от того, какой город выбран
switch($_POST['gorod']) // а это условный вывод
{
case 'g1':?>
<option value="f1">такси</option>
<option value="f2">мусоровозы</option>
<option value="f3">скорая</option>
<?php break;
case 'g2':?>
<option value="f1">каляски</option>
<option value="f2">санки</option>
<option value="f3">велики</option>
<?php break;
case 'g3':?>
<option value="f1">солнце</option>
<option value="f2">ветер</option>
<option value="f3">дождь</option>
<?php break;
default:
}
echo'</select>'; // это выводится не зависимо от того, какой город выбран
} // Конец участка кода, который выполняется только если выбран город
?>
<br><input type="submit" value="Нажми меня"></form>
|
Запишите этот код в файл с расширением .php, закиньте на сервер и разбирайтесь. Щелкайте, перезагружайте, смотрите "исходный код страницы" в браузере и анализируйте.
Если и с этим не разберетесь, то я умываю руки.
А если разберетесь, то вам не составит труда усложнить этот пример для вашей конкретной задачи. | |
|
|
|
|
|
|
|
для: liberty
(17.03.2013 в 00:52)
| | Да, и еще.....
Вам необходимо понять, что следующие 4 фрагмента кода выглядят по разному, но АБСОЛЮТНО ИДЕНТИЧНЫ по результату!!!
<select name="gorod">
<option value="g1">город 1</option>
<option value="g2">город 2</option>
<option value="g3">город 3</option>
</select>
|
<?php
echo '<select name="gorod">
<option value="g1">город 1</option>
<option value="g2">город 2</option>
<option value="g3">город 3</option>
</select>';
?>
|
<select name="gorod">
<?php
for($i=1;$i<=3;$i++){
echo '<option value="g'.$i.'">город '.$i.'</option>';
}
?>
</select>
|
<select name="gorod">
<?php
$num = array(1,2,3);
foreach($num as $i){
?>
<option value="g<?=$i?>">город <?=$i?></option>
<?php
}
?>
</select>
|
| |
|
|
|