tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
22
ZUGRIFFE
914
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    BG-Tomson BG-Tomson ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    13
    Ich weiß dass in dieser Datei noch immer am Anfang und Ende die HTML Anweisungen stehen, das war aber nur weil ich die "allein" getestet habe.

    Wenn ich mir nun den Quelltext ansehe, dann steht dort auch das Richtige drin, dennoch werden keine Menüs angezeigt und die Submenüs werden auch nicht aufgeklappt. Woran kann das liegen?

    PHP-Code:
    <script type="text/javascript">  
    <?php
    $totalButtons 
    5// get_menu($path);

    $subInfo get_sub_menu(1);
    ?>



    //*** SET SUB MENU POSITION ( RELATIVE TO BUTTON ) ***//
    xSubOffset = 124;
    ySubOffset = 2;

    //*** NO MORE SETTINGS BEYOND THIS POINT ***//
    overSub = false;
    delay = 1000;

    /*** SET BUTTON'S FOLDER HERE ***/
    buttonFolder = "http://www.tutorials.de/forum/images/menu/zeitbanner/";

    upSources = new Array(rbutton1up.png,rbutton2up.png,rbutton3up.png,rbutton4up.png,rbutton5up.png);
    overSources = new Array(rbutton1over.png,rbutton2over.png,rbutton3over.png,rbutton4over.png,rbutton5over.png);

    /*** SET BUTTONS' FILENAMES HERE ***/

    <?php
    for($i=0$i<$totalButtons$i++){
    if (
    $i!=($zahl-1)) $f="r"; else $f="g";
    $upSources[$i] = $f."button".($i+1)."up.png";
    $overSources[$i] = $f."button".($i+1)."over.png";
    }

    // GENERATE SUB MENUS
    for ($x=1$x<=$totalButtons$x++) {
        
    // SET EMPTY DIV FOR BUTTONS WITHOUT SUBMENU
        
    if (sizeof($subInfo[$x]) < ) {
              
    ?>              
            document.write('<?php echo'<div id="submenu'.$x.'">';?>');
              <?php
               
        
    // SET DIV FOR BUTTONS WITH SUBMENU
        

            else 
            {
             
    ?>
            document.write('<?php echo'<div id="submenu'.$x.'" class="dropmenu"';?>');
            document.write('onMouseOver="overSub=true;');
            document.write('setOverImg(<?php echo "'".$x."', 'submenu".$x."'"?>);"');
            document.write('onMouseOut="overSub=false;');
            document.write('setTimeout('hideSubMenu(<?php echo "\'submenu".$x."\')',";?>delay);");
            document.write('setOutImg(<?php echo "'".$x."','')"?>');
            document.write('<ul>');
             <?php

            
    for ($k=0$k<sizeof($subInfo[$x]); $k++ ) {
             
    ?>
                document.write('<li>');
            document.write('<?php echo '<a href="'.$subInfo[$x][$k][menu_sub_url].'"';?>');
            document.write('<?php echo 'target="'.$subInfo[$x][$k][menu_sub_target].'"';?>');
            document.write('<?php echo $subInfo[$x][$k][menu_sub_text].'</a>';?>');
            document.write('</li>'); 
            <?php
           
    }    
           
    ?>
                  document.write('</ul>');
           <?php
          

          
    ?>
         document.write('</div>');
    <?php
    }
    ?>

    //*** MAIN BUTTONS FUNCTIONS ***//
    // PRELOAD MAIN MENU BUTTON IMAGES
    function preload() {
        for ($x=0; $x<$totalButtons; $x++ ) {         
            buttonUp = new Image();
            buttonUp.src = buttonFolder + <?php echo $upSources[$x]; ?>;
            buttonOver = new Image();
            buttonOver.src = buttonFolder + <?php echo $overSources[$x]; ?>;  
        }


    // SET MOUSEOVER BUTTON
    function setOverImg(But, ID) {
        document.getElementById('button' + But + ID).src = buttonFolder + overSources[But];
    }

    // SET MOUSEOUT BUTTON
    function setOutImg(But, ID) {
        document.getElementById('button' + But + ID).src = buttonFolder + upSources[But];
    }



    //*** SUB MENU FUNCTIONS ***//
    // GET ELEMENT ID MULTI BROWSER
    function getElement(id) {
        return document.getElementById ? document.getElementById(id) : document.all ? document.all(id) : null; 
    }

    // GET X COORDINATE
    function getRealLeft(id) { 
        var el = getElement(id);
        if (el) { 
            xPos = el.offsetLeft;
            tempEl = el.offsetParent;
            while (tempEl != null) {
                xPos += tempEl.offsetLeft;
                tempEl = tempEl.offsetParent;
            } 
            return xPos;
        } 


    // GET Y COORDINATE
    function getRealTop(id) {
        var el = getElement(id);
        if (el) { 
            yPos = el.offsetTop;
            tempEl = el.offsetParent;
            while (tempEl != null) {
                yPos += tempEl.offsetTop;
                tempEl = tempEl.offsetParent;
            }
            return yPos;
        }
    }

    // MOVE OBJECT TO COORDINATE
    function moveObjectTo(objectID,x,y) {
        var el = getElement(objectID);
        el.style.left = x;
        el.style.top = y;
    }

    // MOVE SUBMENU TO CORRESPONDING BUTTON
    function showSubMenu(subID, buttonID) {
        hideAllSubMenus();
        butX = getRealLeft(buttonID);
        butY = getRealTop(buttonID);
        moveObjectTo(subID,butX+xSubOffset, butY+ySubOffset);
    }

    // HIDE ALL SUB MENUS
    function hideAllSubMenus() {
        for ( x=0; x<<?php echo $totalButtons;?>; x++) {
            moveObjectTo("submenu" + (x+1) + "",-500, -500 );
        }
    }

    // HIDE ONE SUB MENU
    function hideSubMenu(subID) {
        if ( overSub == false ) {
            moveObjectTo(subID,-500, -500);
        }
    }

    //preload();
    </script>
    Der Button wurde einmal aufgerufen um angezeigt zu werden.
    HTML-Code:
    <a href="http://zeitbanner.f1-planet.de" onmouseover="setOverImg('3','');overSub=true;showSubMenu('submenu3','button3);" onmouseout="setOutImg('3','');overSub=false;setTimeout('hideSubMenu(\'submenu3\')',delay);" target="_blank"><img src="images/menu/zeitbanner/rbutton3up.png" border="0" id="button3" vspace="1" hspace="1"></a>
    Danach soll er beim berühren die Farbe ändern (anderer Button) und bei bedarf ein Submenü aufgeklappt werden.

    So sieht die Anzeige des Quelltextes aus:
    Die Button 1 und 2 haben keine submenus nur der Button 3 hat in diesem Fall einen Menüpunkt.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    document.write('<div id="submenu1">');
    document.write('</div>');
                  
    document.write('<div id="submenu2">');
    document.write('</div>');
     
    document.write('<div id="submenu3" class="dropmenu"');
    document.write('onMouseOver="overSub=true;');
    document.write('setOverImg('3', 'submenu3');"');
    document.write('onMouseOut="overSub=false;');
    document.write('setTimeout('hideSubMenu(\'submenu3\')',delay);"');
    document.write('setOutImg('3','')');
    document.write('<ul>');
    document.write('<li>');
    document.write('<a href="http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=10"');document.write('target=""');
    document.write('Mix 10</a>');
    document.write('</li>'); 
    document.write('</ul>');
    document.write('</div>');
    Geändert von BG-Tomson (24.11.09 um 01:20 Uhr)
     

  2. #17
    BG-Tomson BG-Tomson ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    13
    Komme leider damit nicht weiter.
     

  3. #18
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Dein PHP-Code verursacht noch weitere Syntax-Fehler:

    Code :
    1
    2
    3
    4
    5
    6
    
     
    [COLOR="Green"]
    document.write('setOverImg([SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE]3[SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE], [SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE]submenu3[SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE]);"');[/COLOR]
    document.write('onMouseOut="overSub=false;');
    [COLOR="Blue"]document.write('setTimeout([SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE]hideSubMenu([SIZE="5"][COLOR="Red"][B]\'[/B][/COLOR][/SIZE]submenu3[SIZE="5"][COLOR="Red"][B]\'[/B][/COLOR][/SIZE])[SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE],delay);"');[/COLOR][COLOR="Green"]
    document.write('setOutImg([SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE]3[SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE],[SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE][SIZE="5"][COLOR="Red"][B]'[/B][/COLOR][/SIZE])');[/COLOR]

    Dort sind noch diverse Quotes, die du escapen musst.
    Schau mal in der Fehlerkonsole nach, diese Fehler werden dort bestimmt gemeldet.
     

  4. #19
    BG-Tomson BG-Tomson ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    13
    auch so keinen Erfolg
    PHP-Code:
            document.write('<?php echo'<div id="submenu'.$x.'" class="dropmenu"';?>');
            document.write('onMouseOver="overSub=true;');
            document.write('setOverImg(<?php echo "\'".$x."\', \'submenu".$x."\'"?>);"');
            document.write('onMouseOut="overSub=false;');
            document.write('setTimeout(\'hideSubMenu(<?php echo "\'submenu".$x."\')\',"?> delay););
            document.write('setOutImg(<?php echo "\'".$x."\',\'\')"?>">');
            document.write('<ul>');
             <?php

            
    for ($k=0$k<sizeof($subInfo[$x]); $k++ ) {
             
    ?>
                document.write('<li>');
            document.write('<?php echo '<a href="'.$subInfo[$x][$k][menu_sub_url].'"';?>');
            document.write('<?php echo 'target="'.$subInfo[$x][$k][menu_sub_target].'"';?>');
            document.write('<?php echo $subInfo[$x][$k][menu_sub_text].'</a>';?>');
            document.write('</li>');
     

  5. #20
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Sorry, aber ich bin kein Live-Debugger, für soetwas gibt es Werkzeuge, z.B. die erwähnte Fehlerkonsole. Dazu ist sie da.
     

  6. #21
    BG-Tomson BG-Tomson ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    13
    Meinst Du wenn ich das "document.write(" weglasse und alles per "echo" machen würde, würde das dann nicht auch gehen? Ohne diesen ganzen JS Kram.

    Also nicht
    Code :
    1
    
    document.write('setOutImg(<?php echo "'".$x."','')"; ?>');
    sondern
    Code :
    1
    
    <?php echo "setOutImg('".$x."','')"; ?>

    setOutImg('3',''); ist zwar ne JS-Funktion, aber die müsste ich doch per PHP aufrufen können?
     

  7. #22
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Eine JS-Datei darf wie mehrmals erwähnt nur JS-Code beinhalten...wenn sie HTML-Code ins Dokument schreiben soll, musst du auch write() verwenden.
     

  8. #23
    BG-Tomson BG-Tomson ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    13
    Naja ich hatte ne *.php datei die ich einbinden wollte, ich habe nun einfach den code in die hauptdatei geschrieben und da funktioniert das auch ohne write().

    Im Grunde sind es ja nur die Aufrufe der JS-Funktionen.
     

Ähnliche Themen

  1. JTable mit Daten füllen
    Von ratze79 im Forum Java
    Antworten: 2
    Letzter Beitrag: 04.06.07, 20:33
  2. Antworten: 2
    Letzter Beitrag: 09.07.06, 12:18
  3. DataGrid mit Daten füllen
    Von christine82 im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 12.05.05, 14:59
  4. Kombinatiosfeld mit Daten füllen
    Von Digga im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 05.12.03, 19:05
  5. Antworten: 1
    Letzter Beitrag: 19.10.02, 22:46