zend通过jquery ajax响应设置值子表单元素

时间:2012-08-07 14:14:19

标签: zend-framework jquery zend-form

我无法为从db获取的ef_name设置值。单个id有多个行。

表格

public function addRow()
    {
        $row_form = new Zend_Form(array(
            'elements' => array(
                'ef_name' => array(
                    'type' => 'text'
                ),
            ),          
        ));


        $new_form_index = count($this->_subForms)+1;
        $row_form->setElementsBelongTo('diam['.$new_form_index.']');
        $this->addSubform($row_form, $new_form_index);
        return $row_form;
    }




    public function init() {
 $this->addElement('hidden', 'id', array(
      'value' => 1
    ));

    for($cdr=0;$cdr<10;$cdr++)
            $this->addRow();    
      }

查看

<?php 
echo $this->form ;
$this->jQuery()->enable(); 
?>

<?php $this->jQuery()->onLoadCaptureStart(); ?>
jQuery('#category').change(newEcat);
<?php $this->jQuery()->onLoadCaptureEnd(); ?>


<script><!--
    function newEcat()
    {
        var p = $("#category").val();       

    var response =   $.ajax({

        url: "<?php echo $this->url(array('controller'=>'index',
'action'=>'details')) ?>", 
        type: "GET",       
        data: {id: p}, 
        cache: false,
        success: function(text){
           response = text;

            $("#category").val($(text).find("select[name='category']").val());

            $("#ef_name").val($(text).find("select[name='ef_name']").val());    




},
error: function() { alert('Sorry, no family members defined.'); }

    });

}


--></script>

控制器

 if ($this->getRequest()->isXmlHttpRequest()) {  

    $this->_helper->layout->disableLayout();
    $this->_helper->viewRenderer->setNoRender(TRUE);

    $id = $this->_getParam(id);             
    $form->category->setValue($id);     

 }

1 个答案:

答案 0 :(得分:0)

查看

function newEcat()
{

    var p = $("#category").val();

    var response =   $.ajax({

    url: "<?php echo $this->url(array('controller'=>'index', 'action'=>'details')) ?>", 
    type: "GET",       
    dataType: 'json',
    data: {id: p}, 
    cache: false,
    success: function(text){

    if(JSON.stringify(text) == '[]')        
    alert('Sorry, there are no family details for this employee.');


        for(var valVar=0;valVar<10;valVar++){               
        valVarinc   =   valVar+1;
            $("#diam-"+valVarinc+"-ef_name").val('');

            }

        for(var valVar=0;valVar<10;valVar++){               
        valVarinc   =   valVar+1;
        if(text[valVar].ef_name != ''){
            $("#diam-"+valVarinc+"-ef_name").val(text[valVar].ef_name);             
            }

            }

},
error: function() { alert('Sorry, there are no family details for this employee.'); }
 });

}

<强>控制器

if ($this->getRequest()->isXmlHttpRequest()) {
         $id = $this->_getParam(id);                        
         $form->category->setValue($id);    

}