Avatar billede supremebot Nybegynder
02. april 2004 - 16:03 Der er 10 kommentarer og
1 løsning

skjul min div for fan..

jeg har et problem med min menu som jeg ikke helt forstår:
Menu en ligger her http://test.egmont-hs.dk/ (det er frames)
Problemet er at når jeg klikker om skolen/Historie gør den det rigtigt men nå jeg derefter klikker på f.eks Forstander ville jeg gerne have den til at skjule de menu punkter der er inde i historie. Hvis jeg klikker på et menupunkt i roden f.eks. Lange kurser skjuler den dem alle.Det gør den ikke hvilket jeg ikke forstår da jeg køre alle diverne igennem for at skjule dem.

Min menu er uendelig det vil sige at der let kan komme til at være mere end 2 underpunker altså om skolen/ Historie / formænd / bla bla /bla. Det hele hænger næmmelig sammen med mit cms system så det skal selv følgelig også virker hvis der nu var flere underpunkter.


function hideall(){
//document.getElementById('menu/82/90').style.display = "none";
    for(i=0; i < divider.length; i++){
        div = document.getElementById(divider[i]);
        //div = document.all.divider[i]);
        div.style.display = "none";
    }
}

function showsubs(id){
    hideall();
    while(id.lastIndexOf("/") >= 0){
        div = document.getElementById(id);
        div.style.display = "inline";
        //start = id.length - id.lastIndexOf("_");
        id = id.substring(0,id.lastIndexOf("/"));
    }
}

var divider = new Array("menu_82", "menu_82_90", "menu_54", "menu_60",
"menu_79", "menu_77", "menu_73", "menu_66",
"menu_71", "menu_63");
hideall();
Avatar billede roenving Novice
02. april 2004 - 16:46 #1
Har du ikke byttet om på _ og / i det du viser ?-)
Avatar billede supremebot Nybegynder
02. april 2004 - 17:07 #2
jo det har i dette spørgsmål

men hvis du kigger i kilde koden står der var divider = new Array("menu/82", "menu/82/90", "menu/54", "menu/60",
"menu/79", "menu/77", "menu/73", "menu/66",
"menu/71", "menu/63");
hideall();</script>

jeg er bare kommet til at indsætte en gammel.
før stod det med _ for at tjekke om det ver der der var galt prøvede jeg med / men det var det ikke. nu står det med /
Avatar billede supremebot Nybegynder
03. april 2004 - 17:20 #3
HAllo ER DER NOGEN????
Avatar billede roenving Novice
03. april 2004 - 17:33 #4
Måske er det fordi du benytter ulovlige id'er ?-)

Fra http://www.w3.org/TR/html401/types.html#type-name

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
Avatar billede roenving Novice
03. april 2004 - 17:40 #5
<div style="margin-top:3px;">
  <a class="menulevel1" href="aaben.php?id=125" target="indexFrame" onclick="hideall(); showsubs('menu/82/90');">Historie</a>
  <img src="web/bullets.gif" >
  &nbsp;&nbsp;</div>
<div id="menu/82/90" style="display:none" class="menulevel1">
  <div style="margin-top:3px;">
    <a class="menulevel1" href="aaben.php?id=138" target="indexFrame">Dagbog 56-70</a>
    <img src="web/bullets.gif" >

Du har ikke hverken vise eller lukke-koden i underpunkter, kan det være det ?-)
Avatar billede supremebot Nybegynder
05. april 2004 - 11:38 #6
Ja det kunne meget næmt være det ;-)så er det lige pludselig ikke et javascript men et php problem. det er min rekursive menu der er problemet men det skal jeg nok kigge på selv. den er her hvis du skulle være interreseret.

<?
function arr(){
$arr = array();
$count = 0;

include 'mysql.inc';
$find_arr = mysql_query("SELECT * FROM menu WHERE synlig = 1");
mysql_close($connection);

    while($punkt_arr = mysql_fetch_array($find_arr)){
        $arr[$count][under_id] = $punkt_arr[under_ID];
        $arr[$count][id] = $punkt_arr[ID];
        $arr[$count][navn] = $punkt_arr[navn];
        $arr[$count][startside] = $punkt_arr[startside];
        $arr[$count][orden] = $punkt_arr[orden];
    $count++;
    }
//print_r($arr);
return($arr);
//print count($arr);
}



function udtraek($id){
$fundet =0;
global $menu_arr;
$res_arr = array();
    for($n = 0; $n < count($menu_arr); $n++){
        if($menu_arr[$n][under_id] == $id){
            $res_arr[$fundet] = $menu_arr[$n];
            $fundet++;
        }
    }
    //bubblesort (sotere res_arr())
    $temp_arr = array();   
    $total = count($res_arr);
        for($k = $total-2; $k > 0; $k--){
            for($idx = 0; $idx <= $k; $idx++){
                if($res_arr[$idx][orden] > $res_arr[$idx+1][orden]){
                $temp_arr[0] = $res_arr[$idx];
                $res_arr[$idx] = $res_arr[$idx+1];
                $res_arr[$idx+1] = $temp_arr[0];
                }
           
            }
        }

return($res_arr);
}

//rekursiv funktin til at udskrive menuen i html
function menu($id, $level, $divid){
global $menu_arr;
global $div_arr;
$local_arr = udtraek($id);
$antal = count($local_arr);
    //if($max != $level){
        if($antal != 0){
          for ($n = 0; $n < $antal; $n++) { 
            $div = $divid.'/'. + $local_arr[$n]['id'];
            $tmp_arr = udtraek($local_arr[$n]['id']);
            if (count($tmp_arr) > 0) {
                $div_arr[] = $div;
            }
            if($local_arr[$n][startside] != 0){
                echo '<div style="margin-top:3px;"><a class="menulevel1" href="aaben.php?id='.$local_arr[$n][startside].'" target="indexFrame"';
                if (count($tmp_arr) > 0) {
                    echo ' onclick="hideall(); showsubs(\''.$div.'\');"';
                }
                echo '>'.$local_arr[$n][navn].'</a><img src="web/bullets.gif" >';
                echo "\n";
            }else{
                echo '<div style="margin-top:3px;"><a class="menulevel1" href="#"';
                if (count($tmp_arr) > 0) {
                    echo ' onclick="hideall(); showsubs(\''.$div.'\');"';
                }
                echo '>'.$local_arr[$n][navn].'</a><img src="web/bullets.gif" >';
                echo "\n";
            }
            echo str_repeat("&nbsp;&nbsp;",$level)."</div>";   
            if (count($tmp_arr) > 0) {
                //$div_arr[] = $div;
                echo '<div id="'.$div.'" style="display:none" class="menulevel1">';
            }
            menu($local_arr[$n]['id'], $level+1,$div);
            if (count($tmp_arr) > 0) {
                echo "</div>\n";
            }else{
                echo "\n";
            }
        }
    }
}

//udskriver navne på div'erne i et js array
function udskriv_divid(){
    global $div_arr;
    echo "<script>"; echo "\n";
    echo "var divider = new Array(";
    $count = 0;
    for ($n = 0; $n < count($div_arr); $n++) {
        $count++;
        echo '"'.$div_arr[$n].'"';
        if(count($div_arr) != $n+1){
            echo ", ";
        }
        if($count == 4){
            echo "\n";
            $count = 0;
        }
    }
    echo ");";
    echo "\n";
        echo "hideall();</script>";
}
?>
Avatar billede supremebot Nybegynder
05. april 2004 - 12:49 #7
Jeg her fikset der nu med.


function lastdiv($div){
$len = strlen($div);//
$pos = strpos(strrev($div), "_");
$val = $len-$pos;
return substr($div, 0, $val-1);
}

function menu(........

        if (count($tmp_arr) > 0) {
      echo ' onclick="hideall(); showsubs(\''.$div.'\');"';
    }else{
      echo ' onclick="hideall(); showsubs(\''.lastdiv($div).'\');"';
    }
Avatar billede supremebot Nybegynder
05. april 2004 - 12:50 #8
hvis du vil have dine points så send et svar
Avatar billede roenving Novice
05. april 2004 - 12:53 #9
Hvis det var det, der fik den til at virke, så siger jeg velbekomme '-)
Avatar billede supremebot Nybegynder
05. april 2004 - 13:01 #10
jeg havde ikkke selv set den ikke udskrev javascrio tingen i underpunkt for jeg trode jeg havde fikset dem men nej. her er dine points
Avatar billede roenving Novice
05. april 2004 - 13:10 #11
-- jamen, så tak for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging