![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| w03zd8rc |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 26.2.2007 Репутация: нет Всего: нет |
День добрый!
Есть php страничка add_liked.php, с неё возвращается результат:
Данные передаются GET запросом (add_liked.php?ID=1) Делаю на основной странице запрос к этой страничке:
По коду основной страницы есть куча эллементов с ID star1, star2, star3...., у каждого style='color:yellow;' или style='color:blue;'. Ссылка, запускающая функцию:
Суть проблемы: Функция запрос делает верно, страница (add_liked.php) отрабатывает как надо, но когда получает результат и я его пытаюсь обработать (if (respons == 1)) - эта часть сравнений результата не отрабатывает или отрабатывает только один раз. |
||||||
|
|||||||
| w03zd8rc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 26.2.2007 Репутация: нет Всего: нет |
Блин, извините, ошибка закралась незаметно %)
Из add_liked.php возвращаю 0 или 1, а ожидаю в скрипте 1 или 2 )))))) Всё работает |
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Мне всегда было интересно почему не использовать true/false если ожидается удача/неудача.
Просто почему отреагировал - разбираю тут чужой древнючий скрипт, так там тоже 1 или 2. ПОЧЕМУ и ЗАЧЕМ ? Вы сами потом вспомните через пару месяцев что if (veryImportantCheck()) всегда будет отрабатывать? |
|||
|
||||
| w03zd8rc |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 26.2.2007 Репутация: нет Всего: нет |
потому-что варианта, возвращаемого скриптом, не два. Остальные варианты для дебаггинга, информативные. Не буду плодить темы, напишу тут. Всё та-же картина, запрос к другой странице:
Не отрабатывает. Если уберу "json" - то приходят данные нормально:
вставляются куда надо, а вот если json пытаюсь - то кукиш. Т.е. даже если я делаю так:
то отрабатывает ровно до 5 строки Firebug выдаёт ошибку: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data Только непонятно, что ему не нравится. Передаю таким образом:
Уходит всё верно, да и приходит тоже: {"ID":"502"}, до этого момента точно такие-же конструкции работают нормально Это сообщение отредактировал(а) w03zd8rc - 12.3.2016, 11:19 |
||||||||||
|
|||||||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
А обработчик один и тот же на оба варианта? В случае json приходит объект, а так - строка. Просто встань в отладчике на 5 строку и посмотри. Можно залечить эту строку примерно так
Ну и try catch не помешает расставить... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
||||
|
||||
| w03zd8rc |
|
||||||||||||||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 26.2.2007 Репутация: нет Всего: нет |
Со скрипта отправка идёт след образом:
Ну и если просто в адр строке зайти на этот php скрипт то получаем ответ: {"ID":"506"}
странно, но try catch не отрабатывает.... Т.е. следующий код:
никакие алерты не отсылает, ровно как и следующий:
после выполнения 4й строки - тишина...
Тоже самое - тишина, никаких данных. Может php скрипт както ппо особому должен возвращать данные? Фактически, 2 скрипта: 1:
2:
и обработка результатов: 1:
2:
а результат: первый выполняется, второй нет.... Это сообщение отредактировал(а) w03zd8rc - 14.3.2016, 06:30 |
||||||||||||||||||||||
|
|||||||||||||||||||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Это я сказал не разобравшись, что для разбора json используется jQuery, а не объект JSON. JSON.parse выбрасывает исключение, когда строка с ошибкой, а jQuery в этом случае возвращает null. Использовать try catch для проверки post не нужно, так как сам пост всегда отработает правильно. Выполняется он, обычно, асинхронно и только дергает свои коллбяки. "правильная" функция должна бы выглядеть от так (был пропущен символ о в jQuery)
Но все равно, оба этих совета - "мимо" Нужно объяснить про отладчик в Chrome? С ним многие вещи становятся видны сразу, после прохода построчно по коду. Просто поставь точку останова в callback для post. Сейчас складывается такое ощущение, что используется что-то типа IE и отладка методом научного тыка. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| w03zd8rc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 26.2.2007 Репутация: нет Всего: нет |
Всё было куда прозаичней....
В начале скрипта выполняется
Так вот, он и "вносил" лишний символ. Пересохранил его в кодировке utf8 без BOM - всё встало на свои места %) |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |