2013-04-15 4 views
0

에 의해 답변에서 JSON을 구문 분석 할 수 있습니다. 내 questinon 너무 바보 경우 미안, Yii에서 매우 새롭습니다.jQuery 캔트는 Yii 프레임 워크

다음 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); 
} 

예를 들어 $ static Page-> id를 사용할 수있는 PHP 코드에서 내 페이지의 ID를 알려줍니다. 하지만 js에서는 할 수 없습니다. 왜?

필자는 내 개체 ($ staticPage)의 속성을 직렬화하거나 플러시해야하며 내 JS 스크립트에 대한 응답을 제공해야합니다. 그러나 나는 그것을 어떻게하는지 모른다.

+2

브라우저의 디버깅 도구를 사용하여 서버에서 반환하는 내용을 살펴 보셨습니까? – plalx

+0

예. 서버가 너무 많은 필드를 가진 객체를 반환합니다. 나는 그것을 어 기지 않을 수 없었다 : D. – Jakeroid

답변

1

시도해 보셨습니까?

$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); 
+0

오, 고마워요! 나는 "속성"속성에 대해 안다. – Jakeroid

+0

당신을 진심으로 환영합니다. 참고 사항 : 1.이 경우 "find"메서드는 "StaticPage"인스턴스를 반환하고, 없으면 null을 반환합니다. 2. 가능한 경우 배열과 함께 encode 함수를 사용해보십시오 –