PHP-Link in Javascript einbinden

mp3

Grünschnabel
nachdem ich nun ewig in mehreren Foren gesucht habe und nirgends eine Lösung gefunden haben, möchte ich hier um Hilfe bitten:

ich habe mit XARA ein Menü erstellt und möchte/muß die einzelnen Links nun mit diversen PHP-Codes versehen. Wenn ich den PHP-Code Z.B:

<a href="index.php?act=login&goon=login&goon2=profil&username=<?php echo"$username"; ?>&passwort=<?php echo"$usermenupasswd"; ?>"

einfüge, so funktioniert das Ganze nicht. Ich füge den PHP-Code in das nachfolgende Script ein (rot markiert). Leider ist meine Vorgehensweise wohl nicht i.O. da die Seite nicht korrekt angezeigt wird (schon gar nicht das Menü mit dem korrekten Link)

if(typeof(loc)=="undefined"||loc==""){var loc="";if(document.body&&document.body.innerHTML){var tt=document.body.innerHTML.toLowerCase();var last=tt.indexOf("pic.js\"");if(last>0){var first=tt.lastIndexOf("\"",last);if(first>0&&first<last)loc=document.body.innerHTML.substr(first+1,last-first-1);}}}

var bd=0
document.write("<style type=\"text/css\">");
document.write("\n<!--\n");
document.write(".pic_menu {z-index:999;border-color:#ffffff;border-style:solid;border-width:"+bd+"px 0px "+bd+"px 0px;background-color:#4a97dc;position:absolute;left:0px;top:0px;visibility:hidden;}");
document.write(".pic_plain, a.pic_plain:link, a.pic_plain:visited{text-align:left;background-color:#4a97dc;color:#ffffff;text-decoration:none;border-color:#ffffff;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:0px 0px 0px 0px;cursor:hand;display:block;font-size:10pt;font-family:Tahoma, Verdana, Arial, sans-serif;font-weight:bold;}");
document.write("a.pic_plain:hover, a.pic_plain:active{background-color:#4a97dc;color:#ff0000;text-decoration:none;border-color:#ffffff;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:0px 0px 0px 0px;cursor:hand;display:block;font-size:10pt;font-family:Tahoma, Verdana, Arial, sans-serif;font-weight:bold;}");
document.write("\n-->\n");
document.write("</style>");

var fc=0xff0000;
var bc=0x4a97dc;
if(typeof(frames)=="undefined"){var frames=2;if(frames>0)animate();}

startMainMenu("",0,0,2,0,0)
mainMenuItem("pic_b1",".gif",31,140,"http://","","Unused",2,2,"pic_plain");


Es wäre sehr freundlich, wenn mir jemand helfen könnte. Leider bin ich kein Freak und versuche mir die "Geheimnisse des Programmierens" durch ausprobieren und fragen selbst beizubringen.
 
Was den PHP-Code im Link angeht, das sieht eigentlich gut aus und sollte eigentlich gehen.
Was den PHP-Code in mainMenuItem() angeht, ist es schwer, etwas dazu zu sagen, wenn man ihn nicht sieht.

Allemal hilft es hier zur Diagnose eher, wenn du das postest, was dir der Browser als Quelltext anzeigt... denn der JS-Fehler wird dadurch verursacht, und nicht durch PHP-Code.
 
Nur ein kleiner Verdacht: Hast Du die Datei auch mit der .php-Endung versehen? Wenn nicht, ist das Dein ganzes Problem.

Ändere den Namen deinedatei.htm(l) zu deinedatei.php und schon sollte es gehen.
 
Danke für die schnelle Antwort,

das Menü wird auf der HP so korrekt angezeigt. Sobald ich jedoch den php-Code einfüge, wird die Seite nicht mehr angezeigt (es liegt wohl an den php-parametern)
<a href="index.php?act=login&goon=login&goon2=profil&username=<?php echo"$username"; ?>&passwort=<?php echo"$usermenupasswd"; ?>"

warscheinlich muss dieser Code verändert werden, damit das Script damit umgehen kann. Ich weiss nur nicht wie...
 
leider liegt es nicht an der Endung. Die Datei (usermenu.php) enthält den Scriptaufruf der JS-Dateien.
 
Es wäre schön, wenn man mal den Quellcode sehen könnte. Ist die Problem-Seite denn für uns zur Einsicht erreichbar?

<a href="index.php?act=login&goon=login&goon2=profil&username=<?php echo"$username"; ?>&passwort=<?php echo"$usermenupasswd"; ?>"
Der PHP-Code ist korrekt, was mich gedanken macht ist der HTML(JS)-Befehl, ich weiß nicht ob Du den einfach nur für das Forum abgekürzt hast. Aber so wie er da steht sollte der Link auf gar keinen Fall funktionieren.

HTML:
<a href="index.php?act=login&goon=login&goon2=profil&username=<?php echo"$username"; ?>&passwort=<?php echo"$usermenupasswd"; ?>"
sollte zu:
HTML:
document.write ("<a href=\"index.php?act=login&goon=login&goon2=profil&username=<?php echo"$username"; ?>&passwort=<?php echo"$usermenupasswd"; ?>\">link</a>");

Man beachte die letzte abschließende > - Klammer und die zwei Anführungszeichen \" die man unbedingt escapen sollte.
 
Zuletzt bearbeitet:
Sorry, dass ich so lange nicht geantwortet habe,

vorab vielen Dank für die Hinweise. Leider bin ich nicht so fit in JS und php. Deshalb hat das mit der Umsetzung eurer Tipps bisher noch nicht geklappt.

Ich füge mal Teile der betreffenden js-Datei ein. Vielleicht erkennt Ihr ja sofort wo mein Problem liegt.

Hier der Dateiauszug: Ich habe den betroffenen Bereich rot markiert.

if(typeof(loc)=="undefined"||loc==""){var loc="";if(document.body&&document.body.innerHTML){var tt=document.body.innerHTML.toLowerCase();var last=tt.indexOf("pic.js\"");if(last>0){var first=tt.lastIndexOf("\"",last);if(first>0&&first<last)loc=document.body.innerHTML.substr(first+1,last-first-1);}}}

var bd=0
document.write("<style type=\"text/css\">");
document.write("\n<!--\n");
document.write(".pic_menu {z-index:999;border-color:#ffffff;border-style:solid;border-width:"+bd+"px 0px "+bd+"px 0px;background-color:#4a97dc;position:absolute;left:0px;top:0px;visibility:hidden;}");
document.write(".pic_plain, a.pic_plain:link, a.pic_plain:visited{text-align:left;background-color:#4a97dc;color:#ffffff;text-decoration:none;border-color:#ffffff;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:0px 0px 0px 0px;cursor:hand;display:block;font-size:10pt;font-family:Tahoma, Verdana, Arial, sans-serif;font-weight:bold;}");
document.write("a.pic_plain:hover, a.pic_plain:active{background-color:#4a97dc;color:#ff0000;text-decoration:none;border-color:#ffffff;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:0px 0px 0px 0px;cursor:hand;display:block;font-size:10pt;font-family:Tahoma, Verdana, Arial, sans-serif;font-weight:bold;}");
document.write("\n-->\n");
document.write("</style>");

var fc=0xff0000;
var bc=0x4a97dc;
if(typeof(frames)=="undefined"){var frames=2;if(frames>0)animate();}

startMainMenu("",0,0,2,0,0)
mainMenuItem("pic_b1",".gif",31,140,"http://","","Unused",2,2,"pic_plain");
mainMenuItem("pic_b2",".gif",31,140,"javascript:;","","Unused",2,2,"pic_plain");
mainMenuItem("pic_b3",".gif",31,140,"javascript:;","","Unused",2,2,"pic_plain");
mainMenuItem("pic_b4",".gif",31,140,"javascript:;","","Unused",2,2,"pic_plain");
mainMenuItem("pic_b5",".gif",31,140,"http://","","Unused",2,2,"pic_plain");
endMainMenu("",0,0);

startSubmenu("pic_b2","pic_menu",140);
submenuItem("Link","http://","","pic_plain");
endSubmenu("pic_b2");
loc="";

Vielleich ist es für Euch ja nur eine Kleinigkeit;-))

Vorab vielen vielen Dank für die Hilfe

mp3
 
Rein vom Prinzip her: JS-Dateien werden standardmässig nicht von PHP geparst.
Damit PHP-Code dort berücksichtigt wird, musst du der Datei die Endung *.php geben.
 
ja... in der HTML-Datei musst du dann natürlich die script-src entsprechend ändern.

Optimalerweise füge in das Skript dann noch folgendes (direkt am Anfang) ein:
Code:
<?php header('Content-Type:text/javascript');?>
...mit "direkt am Anfang" meine ich dabei.... vor dem <?php-Tag darf nichts stehen...nicht mal ein Leerzeichen.
 

Neue Beiträge

Zurück