Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Что должен вернуть Аякс при при отправки такой формы?
если к нему просто обратится, выводит true на экран через echo
если как полагается дёрнуть его через форму, то он не видит true
т.е. условие когда data = true срабатывает только если сделать принудительно что не равно
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Поясняю.
По умолчанию в настройках аякса жуйкверевского стоит тип возвращаемых данных "html". Т.е. это просто строка текста. Соответственно, чтобы вывести такой тип данный в php, достаточно просто сделать echo "строка". И со стороны javascript в коллбеке тоже будет строка. Поэтому сравнивать следует со строкой. Этот тип данных достаточно неудобен для того, чтобы управлять вариантами выполнения кода в javascript.
Гораздо лучше использовать тип "json".
В этом случае php должен отдавать валидный json-код, а jquery его незаметно для вас преобразует в объект, с которым удобно работать.
Получить валидный json-код на стороне php проще всего специально предусмотренной для этого функцией json_encode(). Ей можно передать массив (или объект) с данными, и впоследствии получить точно такой же массив в javascript. Почему это удобнее? Да потому что можно передать кучу разных данных, разных типов (строки, числа, булевые значения), и иметь к ним раздельный доступ.
По-моему здесь всё предельно просто.
Алексей_М пишет:
$response = [];
наверно надо так? $response = array();
Если у вас php версии до 5.3, то да, короткий синтаксис массивов там не поддерживается.
----- Чем больше узнаю, тем больше я не знаю.
Алексей_М
Отправлено: 29 Января, 2016 - 00:42:42
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
DelphinPRO
да, php 5.2.17, короткий не поддерживается.
может еще что-то не поддерживается, потому что не работает?
есть возможность как-то проверить получении ответов вообще в принципе?
потому что обработчик всё выполняет (запись в файл), но ответ не передаёт или не ловит.
к тому же покрутил разные скрипты аяксовские, на одном хостинге работают (не Ваш и не мой пример, а просто другие), а на другом пишет например:
SyntaxError: JSON.parse: unexpected character
причём скрипты одинаковые!
возвращаясь к началу, можно упрощённо проверить обратку от обработчика, потому что ни мой ни Ваш вариант не работает.
IllusionMH
Отправлено: 29 Января, 2016 - 00:56:37
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Алексей_М, открываете дев тулы в браузере (Ctrl + Shift + I или F12), делайте Ajax и смотрите что возвращает сервер. Там будет виднее
Алексей_М
Отправлено: 29 Января, 2016 - 00:58:11
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Дек. 2012
то файл ok.php даже не дёргает при субмите форму
и при не заполенных полях формы даже не выделяются поля красным (мол ошибка), при моём варианте выделяются.
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Алексей_М пишет:
то файл ok.php даже не дёргает при субмите форму
и при не заполенных полях формы даже не выделяются поля красным (мол ошибка), при моём варианте выделяются.
Вы в консоль браузера-то заглядывайте иногда. Там отображаются все сообщения об ошибках. И такие ляпы сразу можно найти.
----- Чем больше узнаю, тем больше я не знаю.
Алексей_М
Отправлено: 29 Января, 2016 - 01:33:15
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
IllusionMH точно! всю голову сломал, а оказывается...
да, так работает, спасибо большое!
там где выдавал SyntaxError: JSON.parse: unexpected character
там PHP 5.1.2 без jsone вроде
DelphinPRO благодарю!
Ваш пример получился.
Правда как строки сравнить, по примитивному примеру, пока не ясно, хоть и не нужно, но просто интересно
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.