Как передать в PHP параметры из Javascript(Jquery)

Не могу разобраться, если у меня есть Javascript код в шаблоне который должен передать параметры в PHP, например:
$('#rating [type=submit]').click(function(){
    summ = parseFloat($('#summ').text());
    jQuery.post('<strong>change_rating.php</strong>', {
        obj_id: $(this).attr('id').substr(3),
        rating: summ
    }, notice);
 });

то как организовать PHP код change_rating.php чтобы работало?
Я пробовал сделать это фнукцией обрабатывающей эвент, но не работает…

5 комментариев

avatar
jQuery.post('<strong>change_rating.php</strong>', {


change_rating.php — желательно указать полный путь к скрипту на сервере site.ru/change_rating.php т.к. при выполнении на странице, к примеру, site.ru/blogs запрос будет выполнен по адресу site.ru/blogs/change_rating.php

А вообще отладчиком в браузере посмотрите что и по какому адресу передается и что получаете в ответ.
  • ff00
  • +1
avatar
А что именно в евенте не работает? Посмотри, как работают самые простые плагины, вроде статуса пользователя, и сделай по аналогии. Плюс есть скринкаст от МАксима по разработке docs.livestreetcms.com/ А так может у тебя изначально запрос не правильно отправляется, посмотри в консоли браузера, какой пост запрос формируется при отправке
avatar
ff00, так у меня change_rating.php привязан к функции в Actionblog, которая в свою очередь связана через $this->AddEventPreg('/^[\w\_\w]{1,50}$/i','/sendstars$/i','change_rating');
avatar
$this->AddEventPreg('change_rating', 'AjaxChangeRating');

Ниже обьявляете:
public function AjaxChangeRating(){
    $iObjId = getRequest('obj_id');
    $iRating = getRequest('rating');
    //...
}

$('#rating [type=submit]').click(function(){
    summ = parseFloat($('#summ').text());
    obj_id = $(this).attr('id').substr(3);
    ls.ajax.load( aRouter['blog'] + 'change_rating',  {
        obj_id: obj_id,
        rating: summ
    }, function(){
        // После отправки
    } );
    
 });

Как и где подключен js скрипт? Положите его в application/frontend/skin/<Ваш скин>/assets/js/init.js куда нибудь после
jQuery(document).ready(function($){


Используйте компоненты. Пример как работает application/frontend/components/favourite/js/favourite.js. Инициализация
$('.js-favourite-talk').lsFavourite({
        urls: {
            toggle: aRouter['ajax'] + 'favourite/talk/'
        }
    });
avatar
Только AddEventPreg это с регуляркой, а для прямых урл AddEvent
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.