|
|
|
|
|
для: confirm
(03.04.2012 в 17:17)
| | >PS. А вообще-то, у вас ведь загрузка по умолчанию, это только при условии, что не было вообще выбора, а любой выбор сохранять, тогда проще
>]Эффект тот же будет, если я правильно понимаю задачу.
Да, именно так, второй вариант более логичен, хотя возьму на заметку оба :) Теперь все выполняется как задумано. Можно покорять php дальше :) Спасибо Вам большое пребольшое за помощь!!!! Всего Вам хорошего, чего душа пожелает!!!!! | |
|
|
|
|
|
|
|
для: Trololo
(03.04.2012 в 17:00)
| |
<?
session_start();
if(!isset($_SESSION['seek']) && !$_POST) {
$_SESSION['seek']['object'] = "Квартира";
$_SESSION['seek']['operation'] = "Купить";
} else if($_POST) {
$_SESSION['seek']['object'] = $_POST['mr'];
$_SESSION['seek']['operation'] = $_POST['mo'];
}
if(isset($_GET['seek'])) print_r($_SESSION['seek']);
?>
<form method="post">
<input name="mr" value="mr" />
<input name="mo" value="mo" />
<input type="submit" value="Send" />
</form>
<a href="?seek">GET</a>
|
PS. А вообще-то, у вас ведь загрузка по умолчанию, это только при условии, что не было вообще выбора, а любой выбор сохранять, тогда проще:
<?
session_start();
if(!isset($_SESSION['seek'])) {
$_SESSION['seek']['object'] = "Квартира";
$_SESSION['seek']['operation'] = "Купить";
}
if($_POST) {
$_SESSION['seek']['object'] = $_POST['mr'];
$_SESSION['seek']['operation'] = $_POST['mo'];
}
if(isset($_GET['seek'])) print_r($_SESSION['seek']);
?>
<form method="post">
<input name="mr" value="mr" />
<input name="mo" value="mo" />
<input type="submit" value="Send" />
</form>
<a href="?seek">GET</a>
| Эффект тот же будет, если я правильно понимаю задачу. | |
|
|
|
|
|
|
|
для: confirm
(03.04.2012 в 16:27)
| | >Вам надо проверять - если не установлена переменная в сессии и не было POST запроса, то установить ее и указать значение по умолчанию, в противном случае указать ей POST-значение.
Написала такое условие:
if (!isset($_SESSION['object']) && !isset($_SESSION['operation']) && !isset($_POST['seek']))
{
$_SESSION['object'] = "Квартира";
$_SESSION['operation'] = "Купить";
}
else
{
$_SESSION['object'] = clearData($_POST['mr']);
$_SESSION['operation'] = clearData($_POST['mo']);
}
|
теперь php ругается на пер-е $_POST['mr'] и $_POST['mo'] Notice: Undefined index: mr in /home/user/php_work/New/html/user/estate_user.php on line 52 Notice: Undefined index: mo in /home/user/php_work/New/html/user/estate_user.php on line 53
т.е. в блоке else, я понимаю что php видит эти переменные как неидентифицированные, но я их получаю из формы, тогда как их правильно объявить? | |
|
|
|
|
|
|
|
для: Trololo
(03.04.2012 в 16:17)
| | Ну так это запрос к одному и тому же скрипту. И тогда все правильно, как вы действуете, так и получается. Первый запуск скрипта (вывод формы) - это выдал сервер пользователю ее и забыл об всем. Отправляется форма - опять запрос этого же скрипта, но то состояние сервера, которое было при первом запуске его, включая все переменные, которые вы могли установить, этого уже нет, и массив POST будет пуст, естественно, при третьем запросе его - ссылкой.
Вам надо проверять - если не установлена переменная в сессии и не было POST запроса, то установить ее и указать значение по умолчанию, в противном случае указать ей POST-значение. | |
|
|
|
|
|
|
|
для: confirm
(03.04.2012 в 16:12)
| | в main.php находится форма поиска, в main.php подключаю estate_user.php - обрабатываю эту форму и вывожу данные из БД
p.s. ой, прочитайте пожалуйста мой предыдущий пост, описала проблему как можно подробней, если это поможет ) | |
|
|
|
|
|
|
|
для: confirm
(03.04.2012 в 15:48)
| | Скрипт обрабатывает данные, полученные из формы и их же использует в запросах к БД и выводится красивая табличка с объектами, когда перехожу по ссылке Подробно, выводится конкретное объявление со всеми подробностями, но данные полученные из формы перезаписываются значениями по умолчанию и в таблице отображается уже не то, что выбрано пользователем, а Квартира -> Купить, т.е. то что идет после else в скрипте. Как сохранить значения, выбранные в форме, т.е. чтобы эти данные, полученные из <select> сохранялись в скрипте на протяжении всего его выполнения или пока не будут выбраны другие значения <select>
Извините, что много "воды лью", просто пока не знаю как объяснить языком программистов php :) | |
|
|
|
|
|
|
|
для: Trololo
(03.04.2012 в 15:43)
| | Опа, сейчас только обратил внимание - в обоих случаях у вас main.php
О каких разных скриптах тогда речь? | |
|
|
|
|
|
|
|
для: Trololo
(03.04.2012 в 15:43)
| | >имела ввиду, что значения получаемые из формы должны сохранятся на протяжении работы данного скрипта
Ну можно сказать и так, а потому правильно имеете ввиду
>а получается, что когда перехожу на другую ссылку(или вызываю другой скрипт)
И правильно получается, так как вы получаете новые данные, и если не было при этом отправки методом POST, то окуда же им взяться?
В скрипте, который обрабатывает данные формы и сохраняйте нужные из них в сессии, а в другом извлекайте. | |
|
|
|
|
|
|
|
для: confirm
(03.04.2012 в 15:31)
| | >Вы поясните вот этот момент:
>НО когда перехожу по ссылке Подробно(т.е. посылаю новый $_GET-запрос)
>а проверяете в условии $_POST['seek']
>как это все связано?
может никак и не связано, имела ввиду, что значения получаемые из формы должны сохранятся на протяжении работы данного скрипта, а получается, что когда перехожу на другую ссылку(или вызываю другой скрипт) значения этого скрипта опять записываются по умолчанию
форма поиска
<form action="main.php?item=estate" method="post">
<tr>
<td width="70">Тип: </td>
<td><select name="mr" size="1">
<option value=""></option>
<option value="Квартира">Квартира</option>
<option value="Дом">Дом/Дача</option>
<option value="Гараж">Гараж</option>
<option value="Коммерческая">Коммерческая</option>
<option value="Участок">Участок</option>
</select>
</td>
</tr>
<tr>
<td width="70">Операция: </td>
<td><select name="mo" size="1">
<option value=""></option>
<option value="Купить">Купить</option>
<option value="Продать">Продать</option>
<option value="Сдать">Сдать</option>
<option value="Снять">Снять</option>
</select>
</td>
</tr>
<tr>
<td> <input type="submit" name="seek" value="Найти!"></td>
</tr>
</form>
|
| |
|
|
|
|
|
|
|
для: Trololo
(03.04.2012 в 15:24)
| | Вы поясните вот этот момент:
НО когда перехожу по ссылке Подробно(т.е. посылаю новый $_GET-запрос)
а проверяете в условии $_POST['seek']
как это все связано? | |
|
|
|
|