Ajax返回Zend_Form吗?

Controller A:

Zend_Controller_Front::getInstance()
        ->setParam('noViewRenderer', false);
$this->_helper->layout->disableLayout();
$form = new Form_Targets();
$this->view->form = $form;
if(!isset($form)) $form = false;

View A:

<?php echo Zend_Json::encode(array('form' => $this->form));?>

Controller B:

Zend_Controller_Front::getInstance()
        ->setParam('noViewRenderer', true);
        $this->_helper->layout->disableLayout();

        $form = new Form_Targets();
        $this->view->form = $form;
        if(!isset($form)) $form = false;
        echo Zend_Json::encode(array('form' => $form));

View B:

Blank

View script where Ajax Returned:

<div id='paz'>
    <p>Ello</p>
    <p>Ello</p>
</div>

<script type="text/javascript">
    $('#available').bind('change', function (e) 
    {
        $.getJSON('<?php echo $this->baseURL()?>/admin/ajax/target-year/year/' + encodeURIComponent($('#available').val()),
        function(data) 
        {
            alert(data);
            $("#paz").html(data.form);
        }
        );
    });
</script>

Response A:

{"form":{}}

Reponse B:

{"form":{}}

The problem is the form is not being returned...

Just to not leave thread without answer:

Form has to be rendered in order to be able to encode it into JSON:

Zend_Json::encode(array('form' => $this->form->render()));

without ->render() array had form object instead of it's HTML representation.

Usually people use $this->form to render form, forgetting that it uses magic method __toString() to render form.