ERLEDIGT
NEIN
NEIN
ANTWORTEN
22
22
ZUGRIFFE
914
914
EMPFEHLEN
-
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?
Der Button wurde einmal aufgerufen um angezeigt zu werden.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]) < 1 ) {
?>
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>
Danach soll er beim berühren die Farbe ändern (anderer Button) und bei bedarf ein Submenü aufgeklappt 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>
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)
-
Komme leider damit nicht weiter.
-
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.
-
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>');
-
Sorry, aber ich bin kein Live-Debugger, für soetwas gibt es Werkzeuge, z.B. die erwähnte Fehlerkonsole. Dazu ist sie da.
-
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
sondernCode :1
document.write('setOutImg(<?php echo "'".$x."','')"; ?>');
Code :1
<?php echo "setOutImg('".$x."','')"; ?>
setOutImg('3',''); ist zwar ne JS-Funktion, aber die müsste ich doch per PHP aufrufen können?
-
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.
-
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
-
JTable mit Daten füllen
Von ratze79 im Forum JavaAntworten: 2Letzter Beitrag: 04.06.07, 20:33 -
Formulara mit Daten aus DB füllen und dann die neuen Daten aus Formular in die DB
Von StreHa im Forum PHPAntworten: 2Letzter Beitrag: 09.07.06, 12:18 -
DataGrid mit Daten füllen
Von christine82 im Forum .NET ArchivAntworten: 2Letzter Beitrag: 12.05.05, 14:59 -
Kombinatiosfeld mit Daten füllen
Von Digga im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 05.12.03, 19:05 -
Dropdown Menü mit Daten aus Datenbank füllen
Von PAHO im Forum PHPAntworten: 1Letzter Beitrag: 19.10.02, 22:46





Zitieren
Login





