|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
||||||
Как сделать обновление страницы сайта после нажатия кнопки submit в формах30.05.2024, 15:27. Показов 9503. Ответов 111
У меня на странице сайта, который я пишу для себя, 3 формы. Я хочу, чтобы после нажатия в форме кнопки submit происходило обновление страницы и на странице выводился введённый в форму контент.
Я нашла в интернете образец и по аналогии сделала код, но он не работает. Может быть, кто-то знает, почему? Теорию ajax в jquery я просмотрела, но не всё поняла, видимо, поэтому и сделала где-то ошибки. Мой код в файле vopros.php частично для одной из форм:
http://host2.localhost/vv2/vopros.php?v=28 где 28 - это $id_vopr В таком виде после нажатия кнопки submit обновления не происходит и ответ не выводится на странице, приходится вручную перезагружать страницу и только тогда ответ выводится. Значит, или в форме или в скрипте у меня ошибки. Помогите, пожалуйста, их найти. Или, может быть, есть какой-то другой способ для обновления страницы после нажатия кнопки submit?
0
|
||||||
| 30.05.2024, 15:27 | |
|
Ответы с готовыми решениями:
111
Как получить текст страницы сайта которая открывается после нажатия кнопки
PHP БД отправка данных в phpmyadmin после нажатия кнопки ajax submit |
|
Невнимательный
|
|||||||||||||
| 03.06.2024, 17:00 | |||||||||||||
чаще приходит мысль тегу <button> присваивоить одинаковые name="" и разные value="" ... причём даже в одной форме бывает несколько кнопок. И варианты когда у разных случаев похожая обработка и даже имена полей бывают одинаковые ... там вообще по три этапа можно )) сначала проверка из таких-ли вообще прислали, затем общая обработка, затем разделение ) Не по теме: Или вообше меня тут как-то такие наброски получались :)
Добавлено через 10 минут
0
|
|||||||||||||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||
| 03.06.2024, 17:08 | ||
|
Я думаю, что лучше передавать тип действия явно, чем это определять какими-то косвенными признаками, чтоб не было никаких сюрпризов) И логичнее это делать через action формы - мне кажется, что он для этого и служит. Это может быть как отдельная ссылка, так и get параметр (конечно учитываем, что GET параметры в action-е работают только при методе POST). Даже если объединять в один файл. Я бы и в этом случае пытался бы как-то разделить логику самой маршрутизации от операций.
0
|
||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 03.06.2024, 17:22 [ТС] | |
|
ft4l, спасибо, я попробую завтра. С if у меня не получилось, хотя операции аналогичные. Одна вставляет в БД ответ, дату, автора, а вторая - комментарий, дату, автора. Причём, дата и автор те же самые.
0
|
|
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
|
| 03.06.2024, 19:22 | |
|
0
|
|
|
Невнимательный
|
||
| 03.06.2024, 20:34 | ||
|
... Тем более что таких похожих файлов было практически половина ![]() типа экшены модуля админПанели, с суб-экшенами... там хочется всего и побольше, но не до суб-суб-экшенов .) Так что, присмотревшись в одном, в похожих уже всё понятнее)
0
|
||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||
| 04.06.2024, 13:15 | ||
|
Как правильно делать обобщения, выносить в классы и функции и повторно их использовать, совсем не тривиальная задача, как может показаться на первый взгляд. Необходимо вырабатывать некоторые подходы, формировать особое мышление.. У каждого могут быть свои подходы. Но главное показать самую чуть) Добавлено через 17 минут ft4l, По моему мнению - изначально должна быть простая схема. Файлы можно сгруппировать по папкам. Стремление автора положить несколько обработчиков в один файл у меня вызывает некие подозрения. Вот уже идет упоминание, что операции аналогичные и возможна попытка как-то это разрулить if-ами и выносом отдельных частей логики "наверх".
1
|
||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
||||||
| 10.06.2024, 10:49 [ТС] | ||||||
|
ft4l, Наконец я доделала 3 файла и теперь освободилась и смогла попробовать предложенный Вами вариант.
У меня получился такой файл new_r2.php:
Видимо, я опять что-то сделала не так.
0
|
||||||
|
Невнимательный
|
||||||||
| 10.06.2024, 12:47 | ||||||||
я бы сказал Способ , как я сказал, требующий жёсткого соответствия всех имён и порядка полученных полей На всякий для наладки-отладки бывает можно и var_export($_POST); var_dump($_POST); ... но сначала для разработки помогает вывод ошибок/сообщений ... они явно должны были быть
и что делать если $id === NULL но допустим ... ничего не надо проверять, а сессии только число и в случае чего MYSQLI_REPORT_ERROR нам поможет) Но вот тут вот ,) значения которые хоть и гарантирванно должны присутствовать в $_POST, но никак оттуда не достаются и никак не фильтруются не задействуются )) ++ default: в switch неплохо-бы, если вдруг не такие данные будут полученыподготовленные запросы с mysqli_prepare() или mysqli_real_escape_string(mysqli $mysql, string $string): stringИ редиректа не будет... может не быть ... т.к. до header("Location: $redirect"); был вывод с каким-то <meta> )) И наверное как-то всё-же надо допускать что не всегда всё должно успешно добавится ![]() Чего-то где-то выводить пользователям надо тогда... мол извините подвиньтесь)
0
|
||||||||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
|||
| 10.06.2024, 12:52 | |||
|
0
|
|||
|
Невнимательный
|
||
| 10.06.2024, 13:15 | ||
|
Вариантов много , размещения/разнесения всей логики... Например сразу c не-POST куда-то лесом, Затем в switch чуть что не то сразу в сообщения о ошибках и break Затем после, если нет сообщений об ошибках или статус какой использовали в переменной, уже можно перенаправлять либо на форму либо на просмотр с выводом как-нибудь OK или OKn't +++ В сессиях кстати, кроме прочего, время последнего добавления тоже желательно проверять. У меня мышки иногда по несколько копий форм иногда отправляют... ограничение частоты добавления может помочь
0
|
||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 10.06.2024, 15:12 [ТС] | |
|
ft4l, у меня вообще в Форум зайти могут только зарегистрированные и авторизованные пользователи. Никакие гости на страницы Форума попасть не могут.
Я поторопилась и не вставила полностью обработку в case. Я же сейчас уже совсем другим занимаюсь - стилями в другом файле. Я сначала пыталась не с полями case выводить, а с именами кнопок sabmit (s, s1,s5) и там у меня были выведены переменные из формы. Но номер не удался и я переделала файл, но пропустила два куска. Извините. Завтра исправлю и выложу. А ошибки вывести я хотела, но т.к. я умею это делать только с эхо, а после эхо редирект работать не будет, то и не вставила.А default без сообщения об ошибке вроде бы смысла не имеет... Про функции я не подумала. Вставлю. А что значит "возможно и обращение и запросами отличными от POST"? Например? Добавлено через 6 минут sad67man, я знаю, что старт сессии должен быть до любого вывода, но метатега это не касается. По крайней мере на практике такой порядок никак не мешает пользоваться сессией. Всё прекрасно работает в десятке файлов
0
|
|
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
|
| 10.06.2024, 16:35 | |
|
0
|
|
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 10.06.2024, 17:59 [ТС] | |
|
sad67man, понятия не имею. Но Вы попробуйте, всё прекрасно работает
0
|
|
|
Невнимательный
|
||||
| 10.06.2024, 18:22 | ||||
|
Но на такое точно лучше не полагаться... наштампуете файлов-страничек , а оно рраз,) и в один прекрасный момент перестанет работать после обновлений/изменений )) ... придётся всякими ob_start() ob_end_flush() всё обкладывать или вообще переписывать. ... только сильно не обкатывал ещё... возможно появились-бы ситуации когда вовремя не вовремя. Другой вариант всётаки выводить страничку по POST-запросу ... вместо header(location) можно сделать таймаут header(refresh) или <meta>refresh или вообще javascript confirm() alert() и т.п. Но у меня и так был-бы ajax-запрос ... для клиентов со включенным js ... если не для таких под какие-бы даже ajax никак) можно и вручную всем предоставить... переходить или нет ... но это дать больше поводов обновлять и пищать)
0
|
||||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||
| 10.06.2024, 18:32 | ||
|
Браузер прекрасно понимает заголовок Content-Type и без мета тега. Так а зачем вам выводить что-либо когда вы делаете редирект? Я вижу применение только как для дебага. Конечно после вывода и редирект не будет работать..
1
|
||
|
Невнимательный
|
|||
| 10.06.2024, 18:59 | |||
|
что например если юзер закроет браузер, а потом запустит его и восстановит вкладки, ... сессионная кука SID/PHPSESSID таким образом потеряется, так вот не видно чтобы аутентификаия какая-нибудь выполнялаяь... или выпинывания/подпинывания таких куда-то )
0
|
|||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|
| 10.06.2024, 19:33 [ТС] | |
|
ft4l, я предполагаю, что если юзер закроет браузер, а потом попытается восстановить вкладки, ему напишут, что нужно снова ввести данные. По крайней мере так пишет мне, когда я долго не открываю страницу сайта, т.к. занимаюсь, например базой данных.
Незарегистрированному пользователю может открыться только первая страница Форума, на которой происходит регистрация и аутентификация. Только после аутентификации открывается навигационная панель, с помощью которой юзер может перейти на остальные 8 страниц форума. Поэтому если юзер закроет браузер, ему придётся для входа в Форум снова проходить аутентификацию. А этот файл new_r2.php вообще не может открыться юзеру, потому что нигде на сайте на него нет ссылки.
0
|
|
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||
| 10.06.2024, 20:10 | ||
|
Что нам тут сидеть и продумывать все возможные ситуации, когда может прийти запрос от незарегистрированного пользователя.. или в каких случаях из-за неправильного порядка может что-то поломаться?.. Если покрыть пограничные случаи, то как правило автоматом покрываются и все остальные.
0
|
||
|
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
|
|||||||||||
| 11.06.2024, 11:11 [ТС] | |||||||||||
|
ft4l, Я исправила файл, но, как я и писала, после нажатия кнопок submit ничего не происходит.
А для чего это:
0
|
|||||||||||
|
Невнимательный
|
||||||
| 11.06.2024, 12:23 | ||||||
|
... и нужно извлекать из
mysqli_report(MYSQLI_REPORT_ERROR); ошибки обрабатываются как ошибки php... А так что можно сказать,) если не хотите просто обе таблицы с текстами связывать по id юзеров с таблицей юзеров, то в сессии можно и логин хранить , вместе с id, чтобы первый запрос вообще не нужен был ... даже целый массив туда можно класть со всеми частоиспользуемыми данными касательно юзера. Кроме того помнится была мысль vopros - может любой зарегистрированный, otvet - только мамонты )) или как-то так. т.е. в этот массив напрашивается ещё значение типа Group_id/Group/Role/uStatus/...etc которое будет проверяться как минимум для otvet ... но вообше как говорили посетитель может и оказаться случайный. ... добавьте в switch(){ //..... всё что там default: exit('Unknown request'); } ... может оно просто не попадает под перечисленные case и htmlentities(или htmlspecialchars(
0
|
||||||
| 11.06.2024, 12:23 | |
|
Как сделать перезагрузку страницы после нажатия Отлов нажатия кнопки submit и блокировка последующего нажатия как после нажатия кнопки Отправит сделать прелоадер и Как сделать, чтобы после нажатия кнопки к курсору цеплялся квадратик?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|