Немного странно работает мой скрипт js:
<?php
use app\models\User;
use yii\helpers\Html;
use app\components\PeopleWidget;
use yii\helpers\Url;
/**
* @var User $peopleArr
* @var PeopleWidget $context
*/
?>
<?php foreach ($peopleArr as $people): ?>
<?php echo Html::a($people->getAttribute('name'), Url::to(['/user/index', 'id' => $people->getAttribute('nick_name')]));?>
<?php echo $people->getAttribute('nick_name');?>
<?php echo Html::button('Сообщение', ['id' => $people->getId(), 'class' => 'mail-to'])?>
<?php echo Html::button($context->isFriend($people->getId()) ? PeopleWidget::REMOVE_FROM_FRIEND : PeopleWidget::ADD_TO_FRIEND,
['id' => PeopleWidget::REMOVE_FROM_FRIEND ? $context->getFriendId($people->getId()) : $people->getId(), 'class' => 'action-to-user']);?>
<?php endforeach;?>
<?php
$removeText = PeopleWidget::REMOVE_FROM_FRIEND;
$addText = PeopleWidget::ADD_TO_FRIEND;
$checkFriend = <<< JS
var removeText = "$removeText";
var addText = "$addText";
$('.action-to-user').click(function() {
if ($(this).text() == removeText) {
$.ajax('/user/delete-friend/', {
type: 'post',
data: 'id-friend=' + this.id + '&is-people=' + true,
success: function (response) {
$(('#'+response)).text(addText);
},
error: function() {
alert('error');
}
});
}
if ($(this).text() == addText) {
$.ajax('/user/add-friend/', {
type: 'post',
data: 'id-friend=' + this.id,
success: function(response) {
alert(response);
},
error: function() {
alert('error');
}
});
}
});
JS;
$this->registerJs($checkFriend, \yii\web\View::POS_READY);
?>
Когда выполняется первое условие -
id
кнопки передается правильно и корректно выполняется действие!
Но когда выполняется второе условие - не передается ничего! То есть в
action
контроллера передается пустая строка!
Пробовал разные варианты, например задавать кнопке просто один
id
, например 5 - результат не меняется!
Но когда сделать так :
if ($(this).text() == addText) {
$.ajax('/user/add-friend/', {
type: 'post',
data: 'id-friend=' + 5,
success: function(response) {
alert(response);
},
error: function() {
alert('error');
}
Все работает корректно!
Что я упустил ? Или возможно где то ошибся ?
Буду благодарный за подсказку))