$parentfieldid = $_REQUEST["parentfieldid"]; $fldPickList = $_REQUEST['listarea']; //changed by dingjianting on 2006-10-1 for picklist editor $fldPickList = utf8RawUrlDecode($fldPickList); $multifieldinfo = getMultiFieldInfo($multifieldid, false); $tablename = $multifieldinfo["tablename"]; $moduleName = $multifieldinfo["modulename"]; $totallevel = $multifieldinfo["totallevel"]; global $adb; //changed by dingjianting on 2007-2-20 for picklist ,some items used in codes can not be changed such as close win. if ($level == 1) { $delquery = "delete from {$tablename} "; $adb->query($delquery); } else { // $delquery="delete from $tablename where thelevel>$level or (thelevel=$level and parentfieldid=$parentfieldid)"; deleteSubOptionNode($multifieldid, $level, $totallevel, $parentfieldid, $tablename); } if (substr_count($fldPickList, "br") > 0) { $fldPickList = str_replace("<", "<", $fldPickList); $fldPickList = str_replace(">", ">", $fldPickList); $pickArray = explode("<br />", $fldPickList); } else { $pickArray = explode("\n", $fldPickList); } $count = count($pickArray); $tabname = explode('cf_', $tableName); if ($tabname[1] != '') { $custom = true; } for ($i = 0; $i < $count; $i++) { $pickArray[$i] = trim($pickArray[$i]);
function deleteSubOptionNode($multifieldid, $level, $totallevel, $parentfieldid, $tablename) { global $adb; if ($level > $totallevel) { return; } if ($level + 1 <= $totallevel) { $sql = "select actualfieldid from {$tablename} where thelevel='{$level}' and parentfieldid='{$parentfieldid}'"; $result = $adb->getList($sql); foreach ($result as $row) { $eachfieldid = $row["actualfieldid"]; deleteSubOptionNode($multifieldid, $level + 1, $totallevel, $eachfieldid, $tablename); } } $deletesql = "delete from {$tablename} where thelevel='{$level}' and parentfieldid='{$parentfieldid}'"; //file_put_contents("D:\\deletelog.txt", "$deletesql\r\n", FILE_APPEND | LOCK_EX); $adb->query($deletesql); }