Задать вопрос

Как передать модель в ajax (Yii)?

Добрый вечер. При передачи модели через ajax получаю ошибку "Object of class Posts could not be converted to string "
В виджете вот такой код:

'<script>
            var data="data="+JSON.stringify('.$this->model.'); // Вот тут ошибка 
            $("#buttonread").click(function(){
            var w = $(".modal-body");
            $.ajax({url:"'.Yii::app()->createUrl('Posts/EditPost').'", type: "POST", data: data})
            });
            </script>';


Как исправить, не подскажете?
  • Вопрос задан
  • 2875 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@kfuntov
Замените $this->model на json_encode($this->model->attributes)
Это должно поправить эту ошибку.
Но вообще-то вы делаете что-то совсем не так, весь код выглядит странным, очень-очень.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
fornit1917
@fornit1917
А вы ожидали другого, конкатенируя строку и объект класса Posts? Модель из PHP в яваскрипт вам передать не получится, какбе это разные языки вообще-то. Вы можете сериализовать модель в строку и передать как строку. Как это делать - вам решать, в зависимости от того что вам нужно
Ответ написан
Комментировать
@ikeagold
Я определял строку хоста:
var magicurl = 'http://' + window.location.hostname;

А потом добавлял ее к "Posts/EditPost".
Если знаете решение лучше, то буду рад лайкнуть) а то это такие костыли.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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