- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день!
При нажатии на "Добавить в корзину", во-первых, ссылка "Добавить в корзину" должна исчезнуть, во-вторых, напротив ссылки "В корзине" вместо слова "пусто" должна появляться цифра.
Главный вопрос - почему ни того, ни другого не происходит?
Нажимаю "Добавить в корзину", на странице ничего не меняется, и в консоли файрбага появляется:
Скрипт main.js сейчас выглядит так:
Файл leftcolumn.tpl:
Файл header.tpl:
Файл product.tpl:
Файл ProductController.php:Ошибок, кроме одной в консоли Хрома, сейчас нигде не выводится. Сообщение о ней появляется на всех страницах браузера:
Как определить, почему не работает код, так как надо?
При помощи отладочной функции
определил, что в файл ProductController.php приходит значение идентификатора выбранного продукта в переменную $itemId. Такая же переменная есть и в файле main.js, которая приходит в функцию addToCart(itemId) и хотелось бы определить, что приходит в эту функцию, но, как это сделать я не знаю (это же не php код и функция d() тут не работает). Также, хотелось бы определить, что приходит в строку:
в переменную $cartCntItems (и приходит ли, что-то?), но, как это сделать не знаю.
Вкладка Sourses при нажатии на "Добавить в корзину":
Вкладка Network при нажатии на "Добавить в корзину":
При выполнении запроса со стороны сервера приходит ответ. На вкладке network смотри док, который приходит в ответ на запрос (тип xhr, видимо 12/ это он). Нажми на него и посмотри текст ответа. Вариантов громадное количество, посмотри что возвращается. А еще лучше измени js на
И смотри приходящие данные в консоли. Если это не json, в чем я уверен на 99%, то смотри что отдает сервер.
смотрите туда.
если у вас уходит всё в точности, а товар не добавляется, значит скорее всего что-то на серверной стороне.
но надо смотреть работу скрипта живьём, иначе это сродни проведению операции по телефону
При выполнении запроса со стороны сервера приходит ответ. На вкладке network смотри док, который приходит в ответ на запрос (тип xhr, видимо 12/ это он). Нажми на него и посмотри текст ответа. Вариантов громадное количество, посмотри что возвращается. А еще лучше измени js на
И смотри приходящие данные в консоли. Если это не json, в чем я уверен на 99%, то смотри что отдает сервер.
При нажатии на 12/ на вкладке Network - Preview появляется:
Это контент другого сайта (bitrix.mini), не имеющего отношения к тому, о котором создана тема! Каким-то образом данные другого сайта попадают в этот. Просто, я два разных сайта: myshop.local (о котором сейчас речь) и другой - bitrix.mini расположил в одной директории:
При нажатии на 12/ на вкладке Network - Headers появляется:
При нажатии на 12/ на вкладке Network - Cookies появляется:
При нажатии на 12/ на вкладке Network - Response появляется:
Видите ли Вы ошибку? может, ещё, какие-либо вкладки, файлы стоит посмотреть?
Вот вам и Bitrix хвалёный 😂
Вот вам и Bitrix хвалёный 😂
Не то что твоя нерождённая ламборджинья
Смотрите. Обычно алгоритм поиска проблем с аяксом следующий
1. Отключаете любое кэширование
2. оставляете только xhr и очищаете все логи дебагера, включаете все сообщения в консоли
3. смотрите консоль нет ли каких ошибок с яваскриптом
4. производите действие. Которое должно привести к аяксовому запросу.
5. обращаетесь обратно к консоли. смотрите. Нет ли чего интересного (ошибок яваскрипта, сообщений от самого скрипта, выполнившего запрос)
6. если есть - изучаете вопрос, штопаете. Если нет открываете вкладку сеть
7. смотрите содержимое запроса. Что он передал на сервер (закладка "заголовки" и "запрс" ) и что он получил от сервера (закладка "ответ")
7а. запрос должен быть вида (адрес: Вашсайт.ru/путь/до/скрипта/обработчика.php , + запрос постом, в котором указываются параметры товара ) на что сайт возвращает джейсон с параметрами корзины.
8. проверяете правильный ли адрес, на который уходят данные (бывает так, что дергается другой скрипт)
9. Проверяете полноту отправляемых клиентом данных и подпись (если она используется)
10. Проверяете ответ сервера.
11. если сервер обрабатывает запрос, но не отправляет валидные данные, то скорее всего в отправляемый контент влезает какой-то мусор, от варнинга, до лишнего пробела
12. это проверяется очень просто. при релоаде страницы товар должен быть в корзине. Это говорит о том. что запрос с клиента на сервер поступает, но в обратную сторону идет битый джейсон.
13. если запрос из п.9 валидный, а товар все-равно в корзине не появляется, значит где-то ошибка в пхп скрипте и надо копать его.
Смотрите. Обычно алгоритм поиска проблем с аяксом следующий
1. Отключаете любое кэширование
2. оставляете только xhr и очищаете все логи дебагера, включаете все сообщения в консоли
3. смотрите консоль нет ли каких ошибок с яваскриптом
4. производите действие. Которое должно привести к аяксовому запросу.
5. обращаетесь обратно к консоли. смотрите. Нет ли чего интересного (ошибок яваскрипта, сообщений от самого скрипта, выполнившего запрос)
6. если есть - изучаете вопрос, штопаете. Если нет открываете вкладку сеть
7. смотрите содержимое запроса. Что он передал на сервер (закладка "заголовки" и "запрс" ) и что он получил от сервера (закладка "ответ")
7а. запрос должен быть вида (адрес: Вашсайт.ru/путь/до/скрипта/обработчика.php , + запрос постом, в котором указываются параметры товара ) на что сайт возвращает джейсон с параметрами корзины.
8. проверяете правильный ли адрес, на который уходят данные (бывает так, что дергается другой скрипт)
9. Проверяете полноту отправляемых клиентом данных и подпись (если она используется)
10. Проверяете ответ сервера.
11. если сервер обрабатывает запрос, но не отправляет валидные данные, то скорее всего в отправляемый контент влезает какой-то мусор, от варнинга, до лишнего пробела
12. это проверяется очень просто. при релоаде страницы товар должен быть в корзине. Это говорит о том. что запрос с клиента на сервер поступает, но в обратную сторону идет битый джейсон.
13. если запрос из п.9 валидный, а товар все-равно в корзине не появляется, значит где-то ошибка в пхп скрипте и надо копать его.
Спасибо, конечно, но похоже, приходят данные с другого сайта, который расположен в этой же директории (При нажатии на 12/ на вкладке Network - Preview, как я выше писал). Не пойму, почему так происходит?
Спасибо, конечно, но похоже, приходят данные с другого сайта, который расположен в этой же директории (При нажатии на 12/ на вкладке Network - Preview, как я выше писал). Не пойму, почему так происходит?
.htaccess смотрите или конфигурацию apache/nginx
Последние действия... Как я уже писал выше, папка с моим сайтом находится в директории C:\OSPanel\domains\test\www\myshop.local Так вот, файл index.php лежит в этой же директории C:\OSPanel\domains\test\www\index.php (ранее я об этом не писал). Файл index.php сейчас пуст, но эта пустота отображается, если нажать в Network 12/ на вкладке Network - Preview, как писалось выше. Если этот файл удалить, то в Network будет вот, что:
То есть, возможно дело не скриптах, а я, что-то напутал в путях. Но что?
Файл htaccess, который лежит в папке со всеми сайтами:
Тоже, файл htaccess, который лежит в сайте myshop.local, о котором и речь:
Файл index.php, тоже который в сайте myshop.local:
Не с путями ли, где-то, ошибка?
отправь запрос по полному URL, что будет?
Если сомневаешься в путях, пропиши в инклюдах вывод имени текущего файла и сравни результат со своими ожиданиями.
Насколько детально не делай выкладки, но разбираться в этой каше по скринам врядли кто-то будет, сам ты это сделаешь куда быстрее.