Как передать значение переменной из js в php

Проблемы с яваскриптом

 
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
на сайте
Потребовалось для одного из типов контента несколько расширить функцию рейтинга. Вместо "нравится-не нравится" нужно сделать голосование по шестибалльной системе. +5 +3 +1 -1 -3 -5
Как сделать шесть кнопок, вроде разобрался.

Спойлер
Как это всё украсить - потом разберусь. Пока не работает сам функционал.

Но теперь не знаю, как передать из \templates\tseso\js\rating.js значение балла рейтинга в \system\controllers\rating\actions\vote.php

Даже если просто объявить переменную в js файле


Спойлер
Все равно vote.php это значение не подхватывает и даже если отменить проверку на is_numeric($points) - все равно в базу пишется NULL

Спойлер
Кто из понимающих людей поможет разобраться?
Заранее признателен.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Ну так у вас же написано:
Код PHP:
  1. // Получаем параметры
  2. $direction = $this->request->get('direction');
  3. $target_controller = $this->request->get('controller');
  4. $target_subject = $this->request->get('subject');
  5. $target_id = $this->request->get('id');
а выше
Код PHP:
  1. if (!$this->request->isAjax()){ cmsCore::error404(); }
Значит данные приходят через ajax.
соответственно смотрим например здесь (вот тут реализация аякса с post запросом).

Для участка выше код будет примерно такой:
Код JAVASCRIPT:
  1. $.post(
  2. "/ajaxtest.php", // ваш php скрипт который ждет данные
  3. {
  4. direction: 'up', // сами данные
  5. controller: 'content',
  6. subject: 'posts',
  7. id: 2,
  8. },
  9. function(result){ alert('Пришел ответ: '+result); }, // callback-функция с ответом
  10. 'json' // тип данных ответа
  11. );
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
на сайте
Val,
Но значение остальных 4 переменных передаются из rating.js в vote.php без проблем.
Вписываю пятую переменную - она не передается.

Вот же функция .click(function(){ icms.rating.vote('up', controller, subject, id, points); });
Вот первые четыре переменные отлично передаются, а points - нет. Почему такое может быть?

Потом разберусь с методом post.
Пока задача стоит явно объявленную переменную var points = 5; отправить в php скрипт vote.php.
Или нельзя прямо в яваскрипте задать значение переменной?
Редактировалось: 1 раз (Последний: 25 ноября 2015 в 23:33)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
на сайте
Виктор,
Идея отличная! Я что-то и внимания не обратил на эту функцию.
Спасибо, Виктор!

Но увы... почему-то не заработало. Буду искать...
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
HiAndy:
Но теперь не знаю, как передать из \templates\tseso\js\rating.js значение балла рейтинга в \system\controllers\rating\actions\vote.php
Val:
смотрим например здесь (вот тут реализация аякса с post запросом).
HiAndy:
Вот же функция .click(function(){ icms.rating.vote('up', controller, subject, id, points); });
Вот первые четыре переменные отлично передаются, а points - нет.
Передаются куда?
Виктор:
JS передал управление функции icms.rating.vote(..., которая отправляет данные POST в vote.php.
HiAndy:
Потом разберусь с методом post.
HiAndy:
Но увы... почему-то не заработало. Буду искать...
Самое время разобраться как работает ajax joke
Удачи!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1981
http://ruseller.com/jqueryshpora.php
смотрите $.ajax() и $.post()
http://instantcms.ru/wiki/doku.php/справочник:полезные_советы_для_разработчиков
NOP
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
на сайте
В общем разобраться с шаблоном в двойке - перелом мозга.

Сделал вот так:

widget.tpl.php
Спойлер
rating.js
Спойлер

vote.php
Спойлер
Всё замечательно работает! Спасибо всем, кто принял участие!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
на сайте
Виктор:
проблема, как: невозможность просмотра списка голосовавших, после голосования, и до перезагрузки страницы?

А это проблема? Это вроде изначально так было задумано.
Сразу после голосования список голосовавших недоступен до перезагрузки. Проверьте на заново установленном тестовом сайте - там точно также.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.