Задать вопрос
@prokopov-vi

Как присвоить результат возращенный ajax для php переменной?

Хочу послать ajax запрос и результат присвоить php переменной!

мой код выглядит так:

<?php
if ($friend) {
    $friendId = $friend->getAttribute('id');
    $blockedStatus = $friend->getAttribute('blocked');
    $isBlocked = Friend::STATUS_BLOCKED;

$setButtonValue = <<< JS
    var textRemove = 'Удалить с черного списка';
    var textAdd = 'Добавить в черный список';
    var spamButton = $('.to-spam-button');

    if ("$blockedStatus" == "$isBlocked") {
        spamButton.text(textRemove);
    } else {
        spamButton.text(textAdd);
    }

    function sendRequest (textAction) {
      $.ajax('/user/spam-friend', {
            type: 'POST',
            data: "blocked-status=" + "$blockedStatus" + "&friend-id=" + "$friendId",
            success: function(data) {
                spamButton.text(textAction);
            },
            error: function(data) {
                alert('error');
            }
      });
    }

    spamButton.click(function() {
      if (spamButton.text() == textAdd) {
        sendRequest(textRemove);
      } else {
        sendRequest(textAdd);
      }
    });

JS;

    $this->registerJs($setButtonValue, View::POS_LOAD);
}
?>


Нужно $blockedStatusприсвоить то что вернет запрос. Пытаюсь сделать это так:

success: function(data) {
          spamButton.text(textAction);
          "$blockedStatus" = data;
    },

При такой записи код не работает!

Как сделать это правильно?
  • Вопрос задан
  • 476 просмотров
Подписаться 1 Оценить 4 комментария
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1. что вы ожидаете от этой строчки "$blockedStatus" = data; ? Вы пытаетесь строке присвоить переменную?
2. php выполняется на сервере, ajax в браузере. Когда ajax возвращает что-либо он возвращает его в браузер, там html и js там нет php переменных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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