Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Слейп
2 / 2 / 2
Регистрация: 18.12.2012
Сообщений: 40
1

Вернуть $_POST после отправки формы по action

01.04.2013, 13:23. Просмотров 2514. Ответов 12
Метки нет (Все метки)

HTML5
1
2
3
4
    <form method="POST" action="test">
        <input name="N1" type="submit" value="111">
        <input name="N2" type="hidden" value="222">
    </form>
дальше мне нужно на этой же странице сделать проверку(то что ниже это грубый пример) по $_POST

PHP
1
2
3
    <?if($_POST["N1"] = "111" && $_POST["N2"]) {?>
    
    <?}?>
Но $_POST ушел на /test/index.php, и на странице с формой он пустой, как его вернуть ? или как записать куда-нибудь а потом уже отправить на /test/index.php ?

Попытки на /test/index.php записать содержимое поста в глобальную переменную или в $_SESSION и передать на страницу с формой ни к чему не привели, на страницу с формой ничего не передается.

пробовал так:

/test/index.php
PHP
1
2
3
4
<?
Global $TEST;
$TEST = $_POST["N1"];    
?>
/страница с формой
PHP
1
<?=$GLOBALS["TEST"]?>
пробовал так:

/test/index.php
C++
1
2
3
<?  
$_SESSION["TEST"] = $_POST["N1"]
?>
/страница с формой
PHP
1
<?=$_SESSION["TEST"]?>
спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 13:23
Ответы с готовыми решениями:

Атрибут формы action. Обработчик выполняется только после обновления
Формой &lt;form action=&quot;delete.php&quot; method=&quot;get&quot;&gt; отправляюсь к обработчику на странице delete.php со...

Редирект после отправки формы
Здравствуйте, уважаемые форумчане. При написании формы столкнулся с проблемой повторной отправки...

Redirect после отправки формы
Доброго времени суток, подскажите пожалуйста, как мне сделать редирект! код весь работает, после...

Закрытие окна после отправки формы
Есть страница с данными из БД, на этой же страничка есть кнопка добавить, при нажатию на которую...

После отправки формы, создание страницы
Здравствуйте, изучаю PHP, и мне надо что-бы при отправке формы, типа POST, в корне сайта создавался...

12
casual_visitor
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
01.04.2013, 14:37 2
так отправляйте форму не на какой-то там index.php, а на себя.. после проверки post можно сделать редирект куда надо
1
Слейп
2 / 2 / 2
Регистрация: 18.12.2012
Сообщений: 40
01.04.2013, 14:49  [ТС] 3
Цитата Сообщение от casual_visitor Посмотреть сообщение
так отправляйте форму не на какой-то там index.php, а на себя.. после проверки post можно сделать редирект куда надо
Хорошая идея, наводящий вопрос - как сделать редирект ? Это что-то из леса СЕО-шников **
0
keovken
1 / 1 / 1
Регистрация: 31.03.2013
Сообщений: 16
01.04.2013, 15:03 4
action оставить пустым

PHP
1
2
3
4
5
6
7
8
<?php
 
if(isset($_POST['submit']))//если была нажата кнопка
{
   $N1 = $_POST['N1']; // ну или что там надо с данными делать
}
 
?>
тут же ниже

HTML5
1
2
3
4
5
<form method="POST" action="">
<input type="text" name="N1">
<input type="submit" name="submit" value="Go!">
 
</form>
как то так
0
01.04.2013, 15:03
Слейп
2 / 2 / 2
Регистрация: 18.12.2012
Сообщений: 40
01.04.2013, 15:16  [ТС] 5
"action оставить пустым"

Переход на страницу по action нужен.

Решили сделать редирект, только

PHP
1
header('Location: <?=$arSection["SECTION_PAGE_URL"]?>');
пока не довел до ума, в адресную строку так и пишется, /<?=$arSection["SECTION_PAGE_URL"]?>

как туда значение ключа положить ? Просто у меня цикл там и значения могут быть разные

Добавлено через 5 минут
нашел, должно выглядеть так

PHP
1
<?header('Location: $Peremennaya'); ?>
спасибо!
0
keovken
1 / 1 / 1
Регистрация: 31.03.2013
Сообщений: 16
01.04.2013, 15:19 6
Если уверены в настройках сервера, тогда да.. А если нет?
Я бы сделал так.
Раз action нужен, то после всех действий на странице test/index.php с помощью header() обратный путь указать явно, а необходимые переменные передать в $_GET.. примерно так

header("Location: forma.php?N1=$N1");

а на первой странице (где форма) уже достать их из массива $_GET.. Вобщем это как вариант
0
casual_visitor
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
01.04.2013, 15:53 7
Цитата Сообщение от keovken Посмотреть сообщение
Если уверены в настройках сервера, тогда да.. А если нет?
Вы о чем?
Цитата Сообщение от Слейп Посмотреть сообщение
PHP
1
<?header('Location: $Peremennaya'); ?>
да.. только в Вашем примере следует использовать двойные кавычки, чтобы была подстановка значения переменной. Одинарные приведут к тому что аргумент header будет восприниматься как сплошная строка содержащая текст 'Location: $Peremennaya'
0
keovken
1 / 1 / 1
Регистрация: 31.03.2013
Сообщений: 16
01.04.2013, 16:00 8
Цитата Сообщение от casual_visitor Посмотреть сообщение
Код PHP
1
<?header('Location: $Peremennaya'); ?>
значит я не правильно понял суть задачи. Откуда ж мне было знать что записано в $Peremennaya... Ведь в Location насколько я знаю указывается адрес? Или я чего то не понимаю?
0
casual_visitor
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
01.04.2013, 16:19 9
По логике беседы Слейп, имел ввиду именно адрес редиректа.. Хотя все может быть

Добавлено через 1 минуту
Цитата Сообщение от keovken Посмотреть сообщение
в Location насколько я знаю указывается адрес?
да указывается
0
Слейп
2 / 2 / 2
Регистрация: 18.12.2012
Сообщений: 40
02.04.2013, 09:26  [ТС] 10
PHP
1
2
3
4
5
6
7
8
9
10
11
12
        <?
        if($_POST["LVL_1"]) {
            $arSectionPageUrl1 = $_POST["LVL_1_URL"];
            header("Location: $arSectionPageUrl1", true, 303);
 
        } elseif($_POST["LVL_2"]) {
            $arSectionPageUrl2 = $_POST["LVL_2_URL"];
            header("Location: $arSectionPageUrl2", true, 303);
        }
        ?>
        
       .......
Редирект срабатывает, но 1 раз, и это логично, потомучто после редиректа мы оказываеся на другой странице. Но вот в чем дело, у меня кол-во форм может быть любым. т.е.

HTML5
1
2
3
4
5
6
7
8
9
<form method="POST" action="test">
        <input name="N1" type="submit" value="111">
        <input name="N2" type="hidden" value="222">
</form>
 
<form method="POST" action="test">
        <input name="N3" type="submit" value="111">
        <input name="N4" type="hidden" value="222">
</form>
Делать обратный редирект не вариант, потомучто нам нужно находиться на это странице.

Если в общем описать ситуацию:
Формы и открывающаяся страница визуально находятся на одной странице.
Формы - выпадающее вертикальное меню(в <input>'е название элемента),
открывающаяся страница по редиректу - описание элемента.

Задача заключается в том чтобы при нажатии в меню ссылки/кнопки (я почемуто решил делать формами) открывалось соответсвующее подменю и тут же правее отображалось описание элемента.



Меню у меня построено, осталось вернуть данные в файл с формами...


Может есть другие способы сделать такое меню ? Может я не правильный путь выбрал ?
спасибо.




ps
----------------------
Еще попробовал так:

/файл с описанием элемента
PHP
1
2
    <?$_COOKIE["BACK_POST"] = array()?>
    <?$_COOKIE["BACK_POST"] = $_POST;?>
/файл с формами
PHP
1
2
3
4
5
    <?
    print "<pre>";
    print_r($_COOKIE["BACK_POST"]);
    print "</pre>";
    ?>
Массив оказался пуст
0
keovken
1 / 1 / 1
Регистрация: 31.03.2013
Сообщений: 16
02.04.2013, 10:29 11
Слейп, вообще то формы нужны не для этого, выпадающее меню делается чуть по другому (опять же если я правильно понял, то речь идет о нем)
Цитата Сообщение от Слейп Посмотреть сообщение
Делать обратный редирект не вариант, потомучто нам нужно находиться на это странице.
вывод я сделал на основании этой строчки
И чем же в таком случае не устроил мой способ? (Сделать обычные ссылки, а необходимые данные передавать в GET)...
0
Слейп
2 / 2 / 2
Регистрация: 18.12.2012
Сообщений: 40
02.04.2013, 11:05  [ТС] 12
Цитата Сообщение от keovken Посмотреть сообщение
И чем же в таком случае не устроил мой способ? (Сделать обычные ссылки, а необходимые данные передавать в GET)...
Скорее всего я не правильно понял... как советуете передать данные в GET и как взять их оттуда?
0
keovken
1 / 1 / 1
Регистрация: 31.03.2013
Сообщений: 16
02.04.2013, 11:47 13
Слейп, я не знаю какие данные нужно передать, но принцип в том что само меню состоит из простых ссылок. Сделать выпадающим можно и на простом css, а передать данные так
HTML5
1
<a href="page1.php?v1='бла-бла-бла'">ссылка1</a>
а на странице page1.php принять эти данные из GET-массива где в ячейке $_GET['v1'] будет записано "бла-бла-бла"... Блин ну я уже не знаю как еще проще объяснить. Разумеется эти данные нужно фильтровать. Во всяком случае я у себя делал так.
0
02.04.2013, 11:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 11:47

Не создается сессия после отправки формы
Здравствуйте! Есть код: if (isset($_POST)) { $_SESSION=$_POST; } &lt;form method=&quot;post&quot;...

Всплывающее окно после отправки формы
Доброго времени суток, форумчане! Речь пойдет о сайте. Как после отправки формы (клика по...

Сохранение GET параметра, после отправки формы
Делаю калькулятор, в котором примеры берутся из json файла, а json файл выбирается GET параметром....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru