使用symfony 1.4构建JSON对象,其中包含一个包含html内容的字段


Construct JSON object with symfony 1.4, with a field with html content

我在这里看到了一些关于几乎相同事情的问题,但是,在遵循他们的建议后,我一直得到相同的行为。

我在操作中构造json对象,如下所示:

return $this->renderText(json_encode(array(
            'html'  => addslashes($this->renderPartial('global/formWrapper',
                    array(
                        'form'  => $nareas,
                        'url'   => $this->generateUrl('new_promo_step2'),
                        'cancelUrl' => 'new_promo',
                          ))),
            'error' => true)));

我得到以下回复:

<html>
  The html content which is supposed to be in the "html" property of my json
  object...
</html>{"html":"None","error":true}

以及具有CCD_ 1的报头。

在我的jQuery ajax请求中,我将dataType设置为"json"(当然我会得到一个意外的字符错误)和"text"(我没有得到错误,但一直得到格式错误的json)

我尝试过使用addslashes()(如示例中所示),但没有此函数;尝试使用ESC_RAW符号选项,得到了相同的结果。

我期待得到这样的东西:

{"html":"<html>Html content</html>","error":true}

求你了!如有任何帮助,我们将不胜感激!

谢谢!

要从操作中渲染分部,您需要将分部加载为include,并使用getPartial将其检索到renderText调用中。

sfLoader::loadHelpers('Partial');
return $this->renderText(json_encode(array(
        'html'  => addslashes(getPartial('global/formWrapper',
                array(
                    'form'  => $nareas,
                    'url'   => $this->generateUrl('new_promo_step2'),
                    'cancelUrl' => 'new_promo',
                      ))),
        'error' => true)));