Hallo Leute
Ich habe ein JS-Menü, welches ich nun dynamisch über eine Datenbank füllen möchte.
Leider bekomme ich die Übergabe der Daten von PHP zu JS nicht hin.
Der ganze Quelltext
Schritt für Schritt:
Hier wird die Datenbank ausgelesen:
Funktion der Datenbank
Zum anzeigen der Seite werden die JS Datein im head eingefügt.
/templates
Der Code in den Arrays soll aus der Datenbank kommen.
/menu/zeitbanner.js
Hier werden die Arrays verwendet.
/menuscript.js
Also nochmal:
also die Funktion
$menu = get_sub_menu(2);
Soll in die Daten für das Menü aus der Datenbank holen.
Ich habe dann
$menu[0][menu_sub_id] = 2;
$menu[0][menu_sub_order] = 1;
$menu[0][menu_sub_text] = "Mix 1";
$menu[0][menu_sub_url] ="http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=1";
$menu[0][menu_sub_target] = "";
$menu[1][menu_sub_id] = 2;
$menu[1][menu_sub_order] = 2;
$menu[1][menu_sub_text] = "Mix 2";
$menu[1][menu_sub_url] ="http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=2";
$menu[1][menu_sub_target] = "";
Zur Verfügung
Dieses soll nun vom Server (PHP) an den Clinet (JS) geschickt werden.
In der HTML-Datei habe ich die JS-Datei "/menuscript.js" aufgerufen, die benötigten Daten bekomme ich aber dort nicht rein, so habe ich sie vorerst in einer anderen JS-Datei per Hand reingeschrieben. Das ist natürlich nicht im Sinne des Erfinders. Diese Datei, hier "/menu/zeitbanner.js" genannt müsste umgeschrieben werden. Die Frage ist nur wie ich das mache.
Im Grunde müsste es in die Zeile:
subInfo[2][1] = new Array($menu[0][menu_sub_text], $menu[0][menu_sub_url], $menu[0][menu_sub_target]);
subInfo[2][2] = new Array($menu[1][menu_sub_text], $menu[1][menu_sub_url], $menu[1][menu_sub_target]);
Ich habe ein JS-Menü, welches ich nun dynamisch über eine Datenbank füllen möchte.
Leider bekomme ich die Übergabe der Daten von PHP zu JS nicht hin.
Der ganze Quelltext
Schritt für Schritt:
Hier wird die Datenbank ausgelesen:
Funktion der Datenbank
PHP:
<?php
if (!function_exists('get_sub_menu')){
function get_sub_menu($menu_id){
global $DB, $db_tab;
$getsubmenu=$DB->query("
SELECT menu_sub_id, menu_sub_order, menu_sub_text, menu_sub_url, menu_sub_target
FROM ".$db_tab['sub_menu']."
WHERE menu_id=".$menu_id);
while ($submenu=$DB->fetch_array($getsubmenu)){
$sub_menu[]=$submenu;
}
return $sub_menu;
}
}
?>
Zum anzeigen der Seite werden die JS Datein im head eingefügt.
/templates
HTML:
<html>
<head>
...
<script src="menu/zeitbanner.js" language="javascript" type="text/javascript"></script>
<script src="menuscript.js" language="javascript" type="text/javascript"></script>
</head>
Der Code in den Arrays soll aus der Datenbank kommen.
/menu/zeitbanner.js
Code:
upSources = new Array("button1up.png","button2up.png");
overSources = new Array("button1over.png","button2over.png");
// SUB MENUS DECLARATION, YOU DONT NEED TO EDIT THIS
subInfo = new Array();
subInfo[1] = new Array();
subInfo[2] = new Array();
//*** SET SUB MENUS TEXT LINKS AND TARGETS HERE ***//
subInfo[2][1] = new Array("Mix 1","http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=1","");
subInfo[2][2] = new Array("Mix 2","http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=2","");
subInfo[2][3] = new Array("Mix 3","http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=11","");
Hier werden die Arrays verwendet.
/menuscript.js
Code:
...
//*** NO MORE SETTINGS BEYOND THIS POINT ***//
var overSub = false;
var delay = 1000;
totalButtons = upSources.length;
// GENERATE SUB MENUS
for ( x=0; x<totalButtons; x++) {
// SET EMPTY DIV FOR BUTTONS WITHOUT SUBMENU
if ( subInfo[x+1].length < 1 ) {
document.write('<div id="submenu' + (x+1) + '">');
// SET DIV FOR BUTTONS WITH SUBMENU
} else {
document.write('<div id="submenu' + (x+1) + '" class="dropmenu" ');
document.write('onMouseOver="overSub=true;');
document.write('setOverImg(\'' + (x+1) + '\',\'\');"');
document.write('onMouseOut="overSub=false;');
document.write('setTimeout(\'hideSubMenu(\\\'submenu' + (x+1) + '\\\')\',delay);');
document.write('setOutImg(\'' + (x+1) + '\',\'\');">');
document.write('<ul>');
for ( k=0; k<subInfo[x+1].length-1; k++ ) {
document.write('<li>');
document.write('<a href="' + subInfo[x+1][k+1][1] + '" ');
document.write('target="' + subInfo[x+1][k+1][2] + '">');
document.write(subInfo[x+1][k+1][0] + '</a>');
document.write('</li>');
}
document.write('</ul>');
}
document.write('</div>');
}
...
Also nochmal:
also die Funktion
$menu = get_sub_menu(2);
Soll in die Daten für das Menü aus der Datenbank holen.
Ich habe dann
$menu[0][menu_sub_id] = 2;
$menu[0][menu_sub_order] = 1;
$menu[0][menu_sub_text] = "Mix 1";
$menu[0][menu_sub_url] ="http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=1";
$menu[0][menu_sub_target] = "";
$menu[1][menu_sub_id] = 2;
$menu[1][menu_sub_order] = 2;
$menu[1][menu_sub_text] = "Mix 2";
$menu[1][menu_sub_url] ="http://www.f1-planet.de/new.php?path=zeitbanner/timebannerlist.php&id_nr=2";
$menu[1][menu_sub_target] = "";
Zur Verfügung
Dieses soll nun vom Server (PHP) an den Clinet (JS) geschickt werden.
In der HTML-Datei habe ich die JS-Datei "/menuscript.js" aufgerufen, die benötigten Daten bekomme ich aber dort nicht rein, so habe ich sie vorerst in einer anderen JS-Datei per Hand reingeschrieben. Das ist natürlich nicht im Sinne des Erfinders. Diese Datei, hier "/menu/zeitbanner.js" genannt müsste umgeschrieben werden. Die Frage ist nur wie ich das mache.
Im Grunde müsste es in die Zeile:
subInfo[2][1] = new Array($menu[0][menu_sub_text], $menu[0][menu_sub_url], $menu[0][menu_sub_target]);
subInfo[2][2] = new Array($menu[1][menu_sub_text], $menu[1][menu_sub_url], $menu[1][menu_sub_target]);
Zuletzt bearbeitet: