JavaScript | Не передаются переменные через AJAX
Тема закрыта by
DenSBK
Причина: Ответы найдены. Спасибо Вилы Выкидные, [xrystalll] за более точные ответы и примеры. Так же спасибо Allazarin и PupCb за идеи)
Причина: Ответы найдены. Спасибо Вилы Выкидные, [xrystalll] за более точные ответы и примеры. Так же спасибо Allazarin и PupCb за идеи)
Добрый вечер.
Сайт пишется на рутере (единая точка входа) что это такое можете почитать в интернете если не знаете, информации предостаточно.
В работает это по такой структуре:
Посетитель жмет ссылку, рутер проверяет наличие нужного нам файла с кодом php если файл есть то идет вывод содержимого тут на помощь приходит шаблонизатор (Да у меня PHP код отдельно HTML отдельно) собственно не в этом суть, пробовал и без него.
Переходы по сайту осуществляются с помощью AJAX таким образом избегаем обновления страницы целиком, а только обновляем нужную часть страницы куда собственно и грузится весь контент.
Столкнулся с такой проблемой что не передаются переменные которые задаются для работы самого скрипта за исключением глобальных таких как POST, GET, SESSION, Cookies и другие.
Необходимо что бы скрипт обрабатывал данные на наличие ошибок и выдавал их юзеру.
В момем случае это массив с ошибками $error который не передается из PHP при использовании AJAX если его убрать или отключить в браузере то все работает.
-----
Для себя сейчас нашел только два выхода.
1. Обрабатывать форму без AJAX что весьма не комфортно например при отправки сообщений.
2. Делать отдельно обработчики для AJAX Запросов и обычных.
Может есть и другие варианты решения. Буду благодарен если подкинете идею.
Надеюсь тут найдется человек который поймет о чем я говорю)
________
посл. ред. 31.03.2021 в 18:41; всего 1 раз(а); by DenSBK
Сайт пишется на рутере (единая точка входа) что это такое можете почитать в интернете если не знаете, информации предостаточно.
В работает это по такой структуре:
Посетитель жмет ссылку, рутер проверяет наличие нужного нам файла с кодом php если файл есть то идет вывод содержимого тут на помощь приходит шаблонизатор (Да у меня PHP код отдельно HTML отдельно) собственно не в этом суть, пробовал и без него.
Переходы по сайту осуществляются с помощью AJAX таким образом избегаем обновления страницы целиком, а только обновляем нужную часть страницы куда собственно и грузится весь контент.
Столкнулся с такой проблемой что не передаются переменные которые задаются для работы самого скрипта за исключением глобальных таких как POST, GET, SESSION, Cookies и другие.
Необходимо что бы скрипт обрабатывал данные на наличие ошибок и выдавал их юзеру.
В момем случае это массив с ошибками $error который не передается из PHP при использовании AJAX если его убрать или отключить в браузере то все работает.
-----
Для себя сейчас нашел только два выхода.
1. Обрабатывать форму без AJAX что весьма не комфортно например при отправки сообщений.
2. Делать отдельно обработчики для AJAX Запросов и обычных.
Может есть и другие варианты решения. Буду благодарен если подкинете идею.
Надеюсь тут найдется человек который поймет о чем я говорю)
________
посл. ред. 31.03.2021 в 18:41; всего 1 раз(а); by DenSBK
DenSBK, Тут мне кидал инфу а сам 0,перепиши под ajax запрос,ну а если не охото сделай обертку
DenSBK, И да!используй один язык потому что 2-3 будет где-то сбой полюбому.
Автор, не слушай 2-3 пост, тов.крот не имеет и общего представления о том, что говорит.
В чем сложность в отдельном обработчике и где минус этого решения?
В чем сложность в отдельном обработчике и где минус этого решения?
Zero, Я разве сказал что полный ноль в этом? Сегодня пол дня потратил на поиск решения, пару вариантов выше написал.
используй один язык
а я по твоему мешаю PHP и Питон? Ерунду не неси. Везде используется 1 язык на тех части PHP для взаимодействия с пользователем AJAX. Для подключения к БД Mysqli. Еще вопросы?
DenSBK (31.03.2021 в 18:58)
а я по твоему мешаю PHP и Питон? Ерунду не неси. Везде используется 1 язык на тех части PHP для взаимодействия с пользователем AJAX. Для подключения к БД Mysqli. Еще вопросы?
а я по твоему мешаю PHP и Питон? Ерунду не неси. Везде используется 1 язык на тех части PHP для взаимодействия с пользователем AJAX. Для подключения к БД Mysqli. Еще вопросы?
Тут нужно для начала посвятить товарища в матчасть. У товарища html/css/wml и прочее - тоже языки программирования.
А ты уже про сложности а-ля ajax/jq и прочее рассказываешь.
PupCb, Смотри есть на пример файл регистрации в котором весь код PHP к нему подключены шаблонизаторы для вывода страницы и формы, так же в нем идет обработка полученных данных из POST, проблема заключается в том что если все поля пустые или заполнены не правильно то при использовании AJAX не выдает ошибок из массива $error и страница просто обновляется.
В отдельном обработчике сложностей нет но зачем их плодить. Как вариант можно в одном обработчике сделать обработку AJAX Запросов и обычных PHP.
В отдельном обработчике сложностей нет но зачем их плодить. Как вариант можно в одном обработчике сделать обработку AJAX Запросов и обычных PHP.
DenSBK, слушай, Денис, я сейчас смотрю метод реализации аналогичной задачи на нашем продукте.
Чтобы ты понимал, примерно:
Есть общая база данных с заказом, где в каждом заказе есть множество полей в таблице, а так же возможность добавления строк-комментариев в заказе.
Любые изменения в заказе проводятся online. К примеру - выбор цвета в заказе. Но для добавления в чат комментария - нужно щелкать + для сохранения информации в БД.
Чтобы ты понимал, примерно:
Есть общая база данных с заказом, где в каждом заказе есть множество полей в таблице, а так же возможность добавления строк-комментариев в заказе.
Любые изменения в заказе проводятся online. К примеру - выбор цвета в заказе. Но для добавления в чат комментария - нужно щелкать + для сохранения информации в БД.
DenSBK, могу уточнить у отдела разработки причины такого решения, но думаю, что проблема аналогична твоей.
Как я понял, проблема отобразить пользователю ошибку при обработке данных с формы (например,пустое сообщение). И у нас есть обновление части страницы через ajax-запросы, которое, видимо, срабатывает когда не надо (т.е. Когда надо отобразить ошибку). В общих чертах вижу такое решение: Вводим статусы (тупо доп переменная в массиве) при отправке данных с сервера пользователю. Если скрипт отработал как надо - ставим статус success и в обработчике ajax, видя этот статус, грузим шаблон из переменной (например) template. При возникновении ошибки ставим статус error и в обработчике ajax выводим сообщение об ошибке из переменной (например error_message). Способов реализации тонна, общих черт, надеюсь, будет достаточно
________
посл. ред. 31.03.2021 в 19:12; всего 1 раз(а); by Allazarin
________
посл. ред. 31.03.2021 в 19:12; всего 1 раз(а); by Allazarin