我现在有以下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;
答案 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点击功能,就像你的另一个代码。 :)