Как правильно получить id кнопки?
Немного странно работает мой скрипт 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'); } Все работает корректно! Что я упустил ? Или возможно где то ошибся ? Буду благодарный за подсказку)) |
Maybe_V, а так есть id?
if ($(this).text() == addText) { alert(this.id); // ... |
Часовой пояс GMT +3, время: 18:32. |