我在这里看到了一些关于几乎相同事情的问题,但是,在遵循他们的建议后,我一直得到相同的行为。
我在操作中构造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)));