Как в Yii2 правильно реализовать отправку данных на сервер не из формы?

Делаю модуль древовидных комментариев и появилась необходимость в рейтинге.

Сам шаблон комментария выглядит примерно так:
<li class="<?= $class ?>" id="comment-<?= $model['comm_id'] ?>" data-parent="<?= $model['parent_comm_id'] ?>">
   ...
    <div class="vote">
        <a class="upvote">&nbsp;</a>
        <a class="downvote">&nbsp;</a>
    </div>
      ...
</li>


Отправка данных на сервер происходит вот так:
var csrf_param = $('meta[name=csrf-param]').attr("content");
       var csrf_token = $('meta[name=csrf-token]').attr("content");

        var commentId = $(this).closest('.comment').attr('id').split('-');
       commentId = commentId[1];

$widget.on('click.comments', '.upvote', function() {
				    var data = {'_csrf':csrf_token , 'type':'rating', 'vote':'up', 'comm_id':commentId};
                    //console.log(data);
                    requestToServer($(this), '/comments/default/vote', 'POST', data, successVote);
					return false;
				});
                
                
			$widget.on('click.comments', '.downvote', function() {
				    var data = {'_csrf':csrf_token , 'type':'rating', 'vote':'down', 'comm_id':commentId};
                    requestToServer($(this), '/comments/default/vote', 'POST', data, successVote);
					return false;
				});


теперь возникли следующие вопросы:
1) где лучше всего написать url адрес для голосования (/comments/default/vote) закинуть его в мета тег или куда ?

2) возможно если у кого советы как это все дело оптимизировать и улучшить?
  • Вопрос задан
  • 3539 просмотров
Решения вопроса 1
url можно прописать в самой ссылке
<a href="/comments/default/vote" class="upvote">&nbsp;</a>

а можно в виде переменной:
<script>
var ajax = {
voteUrl: '/comments/default/vote',
...
};
</script>


Раз два метода у вас отличаются только переменной vote, то логично, что это нужно собрать в один метод.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы