В общем можно сделать так: сначала получить ассоциативный массив где id услуги это ключ а наименование услуги это, соотвественно, значение, после чего в цикле while заменить $value['id_service'] на $usl_checki['id_service'], а $value['name_service'] заменить на $a_array[$usl_checki['id_service']], чтоб в итоге получилось:
PHP:
скопировать код в буфер обмена
foreach ($a_tree[$id_par_service] as $value) { $a_array[$value['id_service']]=$value['name_service']; } foreach ($a_tree[$id_par_service] as $value) { // $style=mysql_query("select * from `dir_service` where `id_service`='".$value['id_service']."'"); // $style=mysql_fetch_assoc($style); $usl_check = mysql_query("SELECT * FROM `service_cl` WHERE `id_con` = '".(int )$_GET['id']."' and `ud_s_cl`='0' and `dateser_can`='0000-00-00'"); if ($value['id_service']==$usl_checki['id_service']) {$s='checked'; } else $s='';} if ($value['parent']==1){ echo "<li class='plus'><INPUT TYPE=checkbox NAME=parent onClick='apply()' VALUE=".$usl_checki['id_service']." ".$s."><span onclick='tgg_parent(this);'>".$a_array[$usl_checki['id_service']]."</span>"; } if ($value['parent']==0){ echo "<li class='non'><INPUT TYPE=checkbox NAME=parent onClick='apply()' VALUE=".$usl_checki['id_service']." ".$s."><span onclick='tgg_parent(this);'>".$a_array[$usl_checki['id_service']]."</span>"; } //рекурсивный вызов - список всех дочерних элементов нужно вставить // именно в этом месте: // <li>название // ** тут список дочерних элементов, он показывается рекурсивным вызовом ** // </li> tree_print($a_tree,$usl_checki['id_service']); echo "</li>"; } echo "</ul>"; }
(Добавление)
По идеи это должно работать, и правильно расставляться чекбоксы и правильно выводиться id услуги с ее описанием, если что то не так, пересматривайте условия, особенно что касается чекбоксов(Отредактировано автором: 28 Августа, 2012 - 12:57:08)
|