Мне удалось создать неупорядоченный список со значениями из родительской таблицы в базе данных. Предполагается, что у каждого родительского списка есть неупорядоченный список, основанный на том, есть ли у него значения в дочерней таблице. Я создал класс, который достигает этого, однако, подсписок, кажется, нарушает вывод родительского неупорядоченного списка. я не смог понять почему! Я публикую код метода, который печатает родительский список и дочерние списки на основе родительского идентификатора; я подозреваю, что ошибка исходит от моего foreach, но я не уверен, я мог бы опубликовать весь код, но не уверен, что это правильно;
public function construct_list($type,$parent = true){
if($parent){
$this->load_parent_array = $this->load_parent_list();
switch($type){
case 'ul':
$this->list_string = '';
foreach($this->load_parent_array as $o_keys => $o_vals):
$this->list_string .= '<li>';
foreach($o_vals as $k_vals => $_vals):
if($k_vals === 'parent_id'){
$this->list_string .= '
<label class="inline-label">
<input data-toggle="child-id-'.$_vals.'" type="checkbox" name="parent_cat[]" value="'.$_vals.'" class="unicorn" />
';
}
if($k_vals === 'parent_category_names'){
$this->list_string .= '<span class="check-label">'.$_vals.'</span>
</label>';
}
//Inner Unordered list code
$this->load_child_array = $this->load_child_list($_vals);
if(!empty($this->load_child_array)){
if($k_vals === 'parent_id'){
$this->list_string .= '<ul id="child-id-'.$_vals.'" class="child-category">';
foreach($this->load_child_array as $o_keys => $o_vals):
$this->list_string .= '<li>';
foreach($o_vals as $v => $f){
if($v === 'child_category_name'){
$this->list_string .= '<label class="inline-label">
<input type="checkbox" name="child_category[]" value="'.$f.'" />
<span class="check-label">'.$f.'</span>
</label>';
}
}
$this->list_string .= '</li>';
endforeach;
$this->list_string .= '</ul>';
}
}
endforeach;
$this->list_string .= '</li>';
endforeach;
break;
case 'select':
$this->list_string = '<li>--Parent Category--</li>';
foreach($this->load_parent_array as $o_keys => $o_vals):
foreach($o_vals as $k_vals =>$_vals):
#$this->list_string .= '<option value="';
if($k_vals === 'parent_category_slug'){
$this->list_string .= '<option value="'.$_vals.'">';
}
if($k_vals === 'parent_category_names'){
$this->list_string .= $_vals.'</option>';
}
endforeach;
endforeach;
break;
}
}else{
}
return $this->list_string;
}
Задача ещё не решена.
Других решений пока нет …