Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.06.2017, 17:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Как вам еще объяснить я не знаю.

$this->area = trim(stripslashes($details['area'])); - это не гарантия того, что в $details['area'] вообще что-то есть (тоже самое и остальное). Надеяться на то, что клиент проверяет? Так это глупо. А отправлять почту по адресу $this->my_mail не проверяя его вообще, так это недопустимо!

$this->subject = "Заказ с калькулятора!"; в таком виде можно просто и не прочесть.

$this->response_status всегда равен 1, то есть иного и не дано, проверять что именно так на клиенте уже бессмысленно.

То есть код такой - пуста или нет форма, в любом случае отправка и клиент получает ответ (JSON). Открывайте отладчик и смотрите в нем, чем отвечает сервер.
Ответить с цитированием
  #12 (permalink)  
Старый 02.06.2017, 18:52
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

что я могу сказать?... "грешно смеяться над убогими" - я же сразу признался, что в js понимаю мало (практически ничего).
По своей наивности надеялся, что если на одном вордпресс-сайте все это работает, то и на другом должно (кстати, на исходном сайте в скрипте вместо jQuery стояло $, но у меня на это сразу консоль начала ругаться и я поменял везде - может где-то не надо было...)
...надеялся на помощь "для чайников" (
Ответить с цитированием
  #13 (permalink)  
Старый 02.06.2017, 19:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Igorsrt
"грешно смеяться над убогими
Да никто не смеется. Ну вот как можно сказать о представленном коде что-то хорошее, если он дырявый? На пальцах, то можно к примеру так - я могу отослать в качестве мыла множество адресов, а так как сервер вообще ничего не проверяет, надеясь на клиента, то mail() отправит мою спам рассылку. О последствиях можно и не говорить, а они могут быть суровыми.

Сообщение от Igorsrt
кстати, на исходном сайте в скрипте вместо jQuery стояло $, но у меня на это сразу консоль начала ругаться
Это потому, что $ могут использовать и другие фреймоворки. Можно вместо этого использовать jQuery или же jQuery.noConflict().

Мне то собственно все равно, хотите используйте этот дырявый код, дело ваше. А для того, почему не получается, хотя если вы считаете, что все ОК и должно, откройте отладчик браузера и проверьте в нем ответ сервера на запрос. Это ведь сделать не сложно.
Ответить с цитированием
  #14 (permalink)  
Старый 02.06.2017, 19:17
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

Сообщение от laimas Посмотреть сообщение
А для того, почему не получается, хотя если вы считаете, что все ОК и должно, откройте отладчик браузера и проверьте в нем ответ сервера на запрос. Это ведь сделать не сложно.
Наверное не сложно, но я не умею видимо (... там где я смотрю в хроме, отображаются только js и css файлы (а этот скрипт встроен в php)...
...про то что там все сделано "не правильно и плохо" я не спорю (потому что не особо понимаю, но догадываюсь что так оно и есть)... но пусть лучше пока так, чем никак
Ответить с цитированием
  #15 (permalink)  
Старый 02.06.2017, 19:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну так изучайте отладчик, в интернете же сидите, не в публичной библиотеке где такая книжка не обязательно есть. )
Ответить с цитированием
  #16 (permalink)  
Старый 02.06.2017, 19:59
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

как всегда "методом тыка" и буржуйским гуглом мне удалось решить проблему: строчка
data = JSON.parse(data);

просто не нужна в этом скрипте и вызывала ошибку “Uncaught SyntaxError: Unexpected token o” в консоли... жалко только что убил на это весь день (
Ответить с цитированием
  #17 (permalink)  
Старый 02.06.2017, 20:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А кто ее туда вставил?

О JSON.parse(data) говорилось в самом начале, что это такое и зачем.

Просто запомните на будущее - если методу .post не указать явно тип принимаемых данных, то он попытается их определить сам (при передаче заголовка сервером - гарантированно). Если это будет json, то вы получите готовый объект, а значит попытка его парсить как json JSON.parse вернет ошибку.

Гуглить полезно, но куда полезнее знать что отправляет клиент и что получает в ответ. Методы тыка тут не действуют.
Ответить с цитированием
  #18 (permalink)  
Старый 02.06.2017, 20:36
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

я согласен с Вами, но учить некому... так что вот "тыкаюсь"... спасибо )
Ответить с цитированием
  #19 (permalink)  
Старый 03.06.2017, 10:59
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

Сообщение от laimas Посмотреть сообщение
А кто ее туда вставил?
Какой-то гад её туда вставил... но ведь все работало на том сайте - в чем разница: в хостинге или версии jquery?
Ответить с цитированием
  #20 (permalink)  
Старый 03.06.2017, 11:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Igorsrt
в чем разница: в хостинге или версии jquery?
В типе данных возвращаемых сервером и на кого возлагается их обработка.

Например, пусть их обрабатывает клиент и он ожидает JSON, а посему получает объект самостоятельно JSON.parse(data). И если это отдать на откуп этим братьям, серверу и клиенту, не контролируя процесс, то есть большая вероятность ошибок на клиенте. Например, при ошибках на сервере, клиенту будет возвращен не JSON, а сообщение об ошибке, формат вывода которых не является валидным json, будет возникать ошибка на клиенте.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не получается отправить JSON данные schel4ok Angular.js 16 11.07.2016 11:36
Не могу отправить форму методом PUT Danxil AJAX и COMET 5 25.06.2014 13:22
отправить форму NeoN Общие вопросы Javascript 3 20.03.2013 08:44
Как отправить форму без аякса? FRIE jQuery 1 14.08.2012 11:39
Как отправить форму сразу на 2 адреса? Vlaimir Events/DOM/Window 4 26.10.2009 00:23