如何在Zend Framework中的表单下放置Checkbox

时间:2012-01-30 12:41:31

标签: php zend-framework

我现在有以下php脚本我想将他的脚本放在zend forms这是我的代码到目前为止: -

$parents = array();
$childs = array();
foreach ($this->Tagkey as $aResultDataValue) {
        $parents [$aResultDataValue['parent']] = $aResultDataValue['parent'];
        $childs [$aResultDataValue['parent']][] = $aResultDataValue['child'];
}

foreach ($parents as $parent) {
     echo '<div>';
     $parent_value = "'$parent'";
     echo '<div><input type="checkbox" name="parents[]" value="'.$parent.'" id="'.$parent.'" class="parentCheck"/>
     <label for="parents_'.$parent.'">'.$parent.'</label></div>';
     foreach ($childs[$parent] as $child) {
           $child_value = "'$child'";
               echo '<div style="margin-left:15px;"><input type="checkbox" name="childs[]" value="'.$child.'" id="childs_'.$child.'" class="child_'.$parent.'" onclick="checkParent('.$parent_value.','.$child_value.');"/>
              <label for="childs_'.$child.'">'.$child.'</label></div>';
     }
     echo '</div>';
} 

我也在这里使用一些javascript代码

<script>
jQuery(document).ready(function(){
      // add multiple select / deselect functionality
      jQuery(".parentCheck").click(function () {
           var childId = jQuery(this).attr('id');
           jQuery('.child_'+childId).attr('checked', this.checked);
      });
 });
 function checkParent(parentId,childId) {
    if(jQuery(".child_"+parentId).length == $(".child_"+parentId+":checked").length) {
           $('#'+parentId).attr("checked", "checked");
       } else {
           $('#'+parentId).removeAttr("checked");
       }
 }  

</script>

这在.phtml页面中对我有用,但实际上我想将此代码放在zend form中并像这样调用

echo $this->form ;

我能做什么?

注意: - 这里Tagkey是: -

$tags =new Campaign_Model_DbTable_Tag();
$aResultData = $tags->getTagkey(); 
$this->view->Tagkey = $aResultData;

1 个答案:

答案 0 :(得分:0)

您可以为每个父母和孩子制作子表单。

EG: -

!!! zend方法名称可能不正确。请找到那些方法。这是完成工作的唯一方法。尝试使用表单装饰器。

testForm.php的代码

$form = Zend_Form();

foreach ($parents as $parent) {

   $subForm = new Zend_SubForm();
   $subForm->addElement($parent);

   foreach ($children as $child) {
       $subForm->addElement($child);
   }

   $form->addSubForm($subForm);
}

为什么在元素中使用onclick方法?尝试使用Jquery点击功能,就像你的另一个代码。 :)