递归中的PHP单选按钮


PHP Radio Buttons in recursion

如何将单选按钮添加到递归中,以便选择和删除它们?

数据库:

ID  |  NAME          |  PARENT
1   |  General       |    0  
2   | Enteprise Dept |    0
3   | Sales Dept     |    0
4   | Collection     |    3
5   | Company        |    2
6   | Collection     |    5

功能:

function list_project_category($name,$parent,$parent_name,$default,$rec=0)
{
$temp="";
if($rec==0)
{
    //just_testing_code
}
$sql = "select id,name from system_categories where parent=$parent";
$result = mysql_query($sql) or die("error:list_project_category");
while($row=mysql_fetch_array($result))
{
    $ids=$row['id'];
    $names=$row['name'];
    $sql3 = mysql_query("SELECT COUNT(category) as cat FROM system_tables WHERE     category='$ids'");
    while($row1=mysql_fetch_assoc($sql3))
    {
        $cat_count=$row1['cat'];
        $def=($default==$row[0])?"":"";
        $par=($parent_name=="")?"":"$parent_name >> ";
        $temp.="</br>"."$def $par".$row[1]." >> $cat_count";
        $temp.=list_project_category($name,$row[0],$par.$row[1],$default,$rec+1);
    }
}
if($rec==0)
{
     //just_testing_code
}
return ($temp);
}

调用:

echo list_project_category("category",0,"",$parent,0);

结果:(数字实际上是部门下的项目总数)

General >> 0
Enterprise Dept >> 0
Enterprise Dept >> company >> 1
Enterprise Dept >> company >> collection >> 0
Sales Dept >> 0
Sales Dept >> collection >> 1 

我想给它们添加按钮。

假设1:

如果我理解正确的话,在删除父对象时,您希望删除它的所有子对象,这样它们就不会成为孤儿。

假设2:

您希望使用复选框来选择和删除多个项目。

解决方案:

  1. 定义提交到deletecategories.php脚本的表单
  2. 在表单中,打印您的类别标签以及一个复选框,该复选框将您的类别id作为其值
  3. 提交时,在deletecategories.php中,捕获表单提交的id,并使用sql,逐id递归删除类别及其所有子代

注意:您可以直接在递归函数中打印HTML,也可以让递归函数返回一个"label"=>"id"对的平面数组,然后在HTML模板中迭代。