С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
13 / 13 / 2
Регистрация: 01.06.2013
Сообщений: 245

Не срабатывает обработка формы внутри обработки другой формы =)

16.12.2020, 20:39. Показов 2296. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Краткая суть или что я пытаюсь сделать:
Отправить запрос с формы(поля ввода) одной кнопкой, посмотреть промежуточный результат, и подтвердить обработку запроса другой кнопкой, которая находится "внутри" запроса

ПРОБЛЕМА:
Вторая форма(кнопка) не обрабатывает значения после нажатия. По непонятным мне причинам.
При этом, если вынести эту форму за запрос предыдущей, то сама механика формы работает, в том числе и с переменными, которые получены ранее. если возвращаю обратно (что принципиально), то перестаёт работать вовсе (даже без переменных из предыдущей)

Структура кода:
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Первая форма для запроса
<form action='".$_SERVER['PHP_SELF']."' method='GET'>
<input name='id' pattern='^[ 0-9]+$'>
<input type='submit' value='Начать'>
</form>"
if (!isset($_REQUEST['id'])) 
{ 
// сообщение об ошибке
 } else {
// запрос к БД
// if кол-во строк  запроса <=1 { 
while {}
 
 
// ПРОБЛЕМА В СЛЕДУЮЩИХ СТРОКАХ
<form action='".$_SERVER['PHP_SELF']."' method='GET'>
<input name='test' type='submit' value='Подтвердить'>
</form>";
 
if ($_REQUEST['test']) { print_r(....) ; } //под print_r пробую выводить массив из запроса верхней формы 
 
 
}// конец if строк <=1
}// конец ша if isset $_request


Логика кода:
Кликните здесь для просмотра всего текста
Есть форма. Простое поле с кнопкой. В него юзер вводит ID. По этому ID выполняется запрос к БД.
Если запрос возвращает больше больше одной строки. то под результатом запроса выводим кнопку, которая полученные ранее данные обрабатывает (запрос к БД - UPDATE) выводить кнопку внутри - принципиально. т.к. UPDATE требует подтверждения после проверки результата запроса + тут планируется доп обработка. например, лог.


Догадка
При нажатии на вторую кнопку выполняется get-запрос без учёта предыдущего get. Параметры сбрасываются.

Вопрос как заставить вторую кнопку спокойно работать внутри первой? Переменные отдельно назначал, за запрос выносил, массив отдельный формировал, глобальные объявлял. Ничего из этого не помогло
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2020, 20:39
Ответы с готовыми решениями:

Открытие одной формы внутри другой формы (подчиненная форма)
Добрый день. Проблема следующего характера. Создаю элемент подчиненной формы на главной форме. Необходимо, чтобы пользователь выбирал на...

Передача параметров из управляемой формы обработки в управляемую форму другой обработки
Есть 2 обработки, в одной из них(Назовём её первой) есть кнопка, при нажатии на которую открывается форма второй обработки. Нужно...

Как обращаться к объектам на subform-е внутри формы, внутри еще одной формы?
У меня есть форма (Form1), в нее вложена подформа (SubForm1), а в неё еще одна (SubForm2). Как обратиться к ComboBox1 на SubForm2 ??? ...

5
 Аватар для sash23
563 / 410 / 259
Регистрация: 31.05.2016
Сообщений: 1,105
16.12.2020, 21:28
Цитата Сообщение от VeTal4ik Посмотреть сообщение
Догадка
При нажатии на вторую кнопку выполняется get-запрос без учёта предыдущего get. Параметры сбрасываются.
Верная догадка
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
16.12.2020, 21:48
Ты намешал все в одну кучу.
1) Нужно разделять логику (php) и отображение (html).
2) Нужно разделять разные запросы.

Для сервера все равно нет никаких "внутри" и "промежуточный". Скрипт отрабатывает целиком и полностью и результат отдается браузеру, дальше сервер уже ничего не помнит, никакие переменные там не сохраняются. А у тебя код написан так, будто бы запрос выполняется частями, с 1 по 12 строчки, потом клиент нажмет кнопку и выполнится код с 13 по 24 строчку. Так не бывает.

Самое простое тут разделить на 3 файла.
1) Вывод первой формы.
2) Обработка первой формы и вывод второй. При выводе второй формы нужно подставить туда ID, например в GET параметре. "<form action='/form2.php?id=$id' method='GET'>"
3) Обработка второй формы и вывод результата. Здесь ты ловишь ID из урла и по нему еще раз проверяешь кол-во строк в БД.
0
13 / 13 / 2
Регистрация: 01.06.2013
Сообщений: 245
16.12.2020, 22:07  [ТС]
html у меня выводится через $a.= "html" т.к. $a уже была задана как body-контент.

Переменные есть и существуют, при этом я могу сделать по ним обработку вполне без препятствий. Но только если вторая кнопка лежит за пределами $_request 1 {не тут} а тут.
я не спорю, просто этой логикой я и руководствовался =) Осталось не понятно почему {тут не могу} а тут могу

но попробую предложенное. Спс
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
17.12.2020, 15:29
Лучший ответ Сообщение было отмечено VeTal4ik как решение

Решение

Вторую форму запиши как
HTML5
1
<form action='' method='POST'>
1
13 / 13 / 2
Регистрация: 01.06.2013
Сообщений: 245
17.12.2020, 17:13  [ТС]
Вооот, то что нужно. Благодарю, теперь всё работает.

Но я теперь запутался что вообще происходит.

почему мне сказали что так не работает и так не бывает, но вот теперь работает? и почему это вообще работает тогда xD
Почему не работает с php_self и get , но работает с '' и post?

Разве phpself не тоже самое что и action='' ?

Мой мозг =)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2020, 17:13
Помогаю со студенческими работами здесь

Как обращаться к объектам на subform-е внутри формы, внутри еще одной формы?
У меня есть форма (Form1), в нее вложена подформа (SubForm1), а в неё еще одна (SubForm2). Как обратиться к ComboBox1 на SubForm2 ??? ...

Открытие формы внутри другой
Можно ли использовать Form1 как основу и на ней же открывать другие формы используя MenuStrip

Как перенести значения из одного компонента одной формы в другой компонент другой формы?
В общем ситуация смешная для профи,делаю программу для редактирования и печати вкладышей для дипломов на PHP,сделал две формы,нужнго...

Открытие одной формы внутри другой
Добрый Всем вечер. В С++ я пока очень слаб, поэтому не ругайте. А по существу - вопрос: Как сделать так, чтобы при открытии второй...

Как создать форму внутри другой формы?
Здравствуйте, нужна помощь! У меня есть главная форма со слайд-меню по левому краю. В форме есть пустая панель, при клике на кнопки в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru