如何返回两个控制器变量并查看html内容作为ajax json响应

时间:2013-01-08 13:18:14

标签: php ajax json cakephp

我正在使用CakePHP并使用MVC标准。

我使用ajax发送请求,并且需要以与tweeter响应相同的方式响应,请参阅下面的tweeter示例响应。

像tweeter发送:

{
"user_id":"155dsfds95",
"html":" \u003Cdiv class=\"module profile-card component profile-header\" data-component-term=\"profile_follow_card\" \u003E\n ",
"screen_name":"abc"
}

我需要从控制器发送user_idscreen_name,并从视图发送html内容。

我的回复数据如下:

$response['user_id'] = $id;
$response['screen_name'] = 'some_name';

截至目前,我可以发送user_idscreen_name作为json_encode($response)

但是如何使用响应在data索引中发送视图内容?

更新

我不想在控制器中制作html内容,而应该来自视图。

1 个答案:

答案 0 :(得分:1)

您可以轻松地从控制器渲染当前视图并使用它返回JSON响应。

工作示例:

public function index() {
    $response = $this->render();
    $data = array(
        'json_key_1' => 'value1',
        'json_key_2' => 123,
        'action_html' => $response->body()
    );
    $options = array(
        'type' => 'json',
        'body' => json_encode($data)
    );
    return new CakeResponse($options);
}