jQuery不能从Yii框架的答案中解析JSON

jQuery cant parse JSON from answer by Yii framework

本文关键字:JSON 答案 不能 Yii 框架 jQuery      更新时间:2023-09-26

我是Yii的新手,如果我的问题如此愚蠢,请原谅。

我正在尝试发送post查询与下一个js代码。

    var post_data = { 'ajax': 'true', 'action': 'get', 'id': id };
    $.post('/index.php?r=admin/staticPages', post_data, function(data) {
        var answer = $.parseJSON(data);
        $("input[name='id']").val(answer.id);
        $("input[name='lang']").val(answer.lang);
        $("input[name='title']").val(answer.title);
        $("input[name='description']").val(answer.description);
        $("input[name='keywords']").val(answer.keywords);
        $("textarea[name='content']").val(answer.content);
    });

管理控制器的下一个代码。

if ($_POST['action'] == 'get')
{
    $id = $_POST['id'];
    $staticPage = StaticPage::model()->find('id = :id', array(':id' => $id));
    echo json_encode($staticPage);
}

在php代码中,我可以使用,例如,$static Page->id,它给我我的页面id。但是在js中,我不能这样做。为什么?

我想,我必须序列化或冲洗我的对象($staticPage)的属性,只有在这给我的JS脚本的答案之后。但是我不知道怎么做。

你试过吗?

$id = $_POST['id'];
$staticPage = StaticPage::model()->find('id = :id', array(':id' => $id));
if (!headers_sent()) {
    header('Content-type: application/json');
}
echo CJSON::encode($staticPage->attributes);