我需要动态地将表单加载到页面中,并且可能会出现此表单的多个实例。验证和保存不是问题,但我似乎无法从控制器传回实际的表单内容/标记。使用简单值(id:1)进行测试时,我可以成功返回数据,但如果未设置数据类型或 [Object object],则实际形式始终返回为 undefined。
控制器:
public function addPermissionFormAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
//data from ajax call is successfully received
$username = $this->getRequest()->getParam('user');
//...Code to get $pages...
$form = new Pds_Wizard_SubForm_Externals($pages);
if(!isset($form)) $form = false;
//I have run XDebug to here and confirmed that the form is built successfully.
echo Zend_Json::encode(array('form' => $form));
}
我的 Ajax 调用:
$('#get-player-permissions').click(function() {
if($('#test-test').val().length > 0) {
$.ajax({
url: '/pds/external-user/add-permission-form',
data: { user: $('#test-test').val() },
dataType: 'json',
contentType: "application/json",
success: function(data){
alert(data.form); // [Object object]
$("#wizardContainer").html(data.form); //empty, no form content
}
})
}
});
我已经尝试过了,甚至没有添加用于发送简单值的dataType或contentType字段,并且没有问题通过这些字段。但是,使用该表单,在这种情况下,我会得到一个 null 或 undefined。
任何建议都值得赞赏,包括更理想的动态加载表单的方法。我不经常使用 Ajax 调用,所以如果这是一个简单的错误,我深表歉意。先感谢您!