Entwickler-Ecke
Programmiersprachen (Server) - PHP Variable an JavaScript übergeben
Fighter#1 - Mi 09.05.07 15:09
Titel: PHP Variable an JavaScript übergeben
Hallo
erster Beitrag in dieser Sparte (is ja auch noch ne ganz frische Spalte)
Also ich bin derzeit im Begriff eine Homepage für den Jugendkreis Reutlingen zu schreiben
Das Menü will ich durch ein Slidermenü optisch aufpeppen !
Die Seite ist PHP gesteuert, d.h. die Index.php includet nur dateien, den Banner, das Menü und die über die id angegebene Seite bsp. main dann wird main.php includet ... das funktioniert alles super!!!
Jetzt aber das Problem:
Der Slider soll beim Laden der Seite (also im Body Tag onLoad) auf eine Position gesetzt werden (also wenns um Programm geht, dann auf Programm bla bla ) das wollte ich so lösen, ich lese die PHP Variable in Javascript ein und über switch case schau ich dann nach wohin der slider gesetzt wird.
Leider funktioniert die Übergabe der PHP Variable an Javascript nicht! Sie ist immer leht ... (test mit alert) der Code funktioniert einwandfrei, da ich dann nun als Notlösung die variable immer auf 'programm' setze..
zum Übergeben der PHP Variable benutze ich folgenden code :
Quelltext
1:
| var idn='<?php "$id"; ?>'; |
GTA-Place - Mi 09.05.07 15:12
Das sollte gehen
Quelltext
1:
| onload="myFunction(<?php echo($var); ?>)" |
Wie immer gilt der Hinweis: Per GET oder POST übergebene Variablen nie direkt benutzen, sondern vorher auf unerlaubte Eingaben prüfen. Da du ja aber mit switch arbeitest, sollte es hier keine / kaum Probleme geben.
Fighter#1 - Mi 09.05.07 15:33
Also, irgendwie hab ich immernoch Probleme:
in der Index steht im Body nun dieser Teil (vo den Includes):
Quelltext
1: 2: 3: 4:
| <? $myid=$_GET['id']; echo 'variable ist: '.$myid; ?> |
die Variable wird richtig ausgegeben!!
im OnLoad der menu.php (welche ja auch included wird, steht jetzt dieser code:
Quelltext
1:
| <body onLoad="slider_setzen(<?php echo($myid); ?>)"> |
es erscheint kein alert ... die Variable ist leer! und wenn ich im onload anstatt $myid einfach nur $id eingebe dann passiert genauso wenig!
bitte helft mir ...
Danniolo - Mi 09.05.07 15:42
Was mir zwar komisch vorkommen würde - aber vlt. wird ja nur <? geparst und <?php nicht.
Wie gesagt würde ich das komisch finden, aber das ist der einzige Unterschied, den ich erkennen kann bei deinen zwei Beispielen.
Klabautermann - Mi 09.05.07 16:01
Hallo,
hast mal versucht direkt auf
$_Get zu zu greifen?
Also:
Quelltext
1:
| <body onLoad="slider_setzen(<?php echo($_GET['id']); ?>)"> |
Gruß
Klabautermann
Fighter#1 - Mi 09.05.07 16:11
Auch noch Danke an Klabautermann und Danniolo, hab eure Tipps gerade eben ausprobiert aber bekomme es nicht hin! ! !
Kann es denn auch an meinem PHP Server liegen, bzw. an dem von funpic, da hab ich meinen also ... die URL ist:
http://gregorh.gr.funpic.de/jkhomepage/index.php?id=main
bin weiterhin offen für eure Tips :-)
Gruß Fighter#1
Martok - Mi 09.05.07 16:29
Aua. Das ist ja ganz kaputtes HTML ;)
Auf Anhieb habe ich den Body-Tag drei(!!!) mal gefunden, könnten auch noch mehr sein. Beim letzten steht ordnungsgemäß deine Variable drin.
Da aber zu dem Zeitpunkt schon 2 durch sind, dürfte der Parser sowas von durcheinander sein, dass er das ignoriert.
Fighter#1 - Mi 09.05.07 16:39
Naja, ich include ja nur :-) ...
da darf das dochmal etwas "anders" aussehen :-D
ich werd mir was einfallen lassen!!
Christian V. - Mi 09.05.07 16:43
Kann es sein dass du mehrere Seiten includest die alle eine vollständige html Struktur haben?
Die Files du du einfügst, dürfen nur Tags enthalten, die im normalfall innerhalb des Body's stehen.(zumindest wenn du es innerhalb des body-tags includest.)
Christian S. - Mi 09.05.07 17:33
IMHO fehlen bei dem Parameter im body-onload einfach die Anführungszeichen, weil der Parameter ja ein String ist. Also so
Quelltext
1:
| <body onLoad="slider_setzen('foobar')"> |
Fighter#1 - Mi 09.05.07 17:43
Ok, also jetzt tuts ein bissel ...
zwar nicht so zufriedenstellend, aber es tut immerhin manchmal :-)
Ich hab jetzt die Anführungszeichen gesetzt alle bodys etc. gelöscht (also bis auf die in der index) ...
Saubäär - Mi 09.05.07 18:22
Moin Fighter,
bei mir funktionierts so anstandslos:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| <html> <head> <script language="javascript"> function slider_setzen(variable) { alert(variable); } </script> </head>
<body onLoad="slider_setzen('<? print($_GET['var']); ?>')">
</body>
</html> |
Gruß
Edit: Habs übrigens auch auf funpic getestet.
Christian V. - Mi 09.05.07 20:27
Sieht gut aus, es funktioniet aber nur, wenn ich auf Vollbildmodus(1650) gehe, sonst ist es immer zu weit rechts.
Danniolo - Mi 09.05.07 21:05
Bei mir funzt es zwar auch so.. aber ehrlich gesagt finde ich es etwas überflüssig und nicht so wirklich zum restlichen, doch recht ansprechenden Design passend - aber ich denke, dass das ganz stark Geschmackssache ist.
DarkLord05 - Do 10.05.07 21:54
Kleiner Tip(p):
Blende den Balken immer erst dann ein, wenn die seite geladen ist. Also erst das Teil "hide"n und dann per JS anzeigen lassen. Habe deine Seite mal mit Deaktiviertem JS getestet, geht zwar, aber der Balken kann sich ja nicht bewegen, und dann hänger der da an der linken seite, das sieht nicht so toll aus.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!