Parameterübergabe von JS auf PHP unter Netscape funktioniert nicht ?!
DMichel
- php
Servus miteinander,
ich bin am Dampfen ... unter MSIE501 funzt alles wunnerbar, aber wehe ich gehe auf Neti4.73.
Folgendes Problem:
Zur Werteübergabe von PHP auf Javascript nutze ich folgenden Befehl:
<?php echo"var para="$verweis";"; ?>
Öffne ich ein Netscape Browserfenster, starte meine Indexseite und klicke dort auf mein Menüpunkt, wird in einer zentralen Verzweigungsseite eben mit Hilfe dieses Skriptes der Übergabeparameter aus der URL extrahiert. (bspw URL: datei.php?verweis=dateixy.php).
in diesem Browserfenster funktioniert das unter Netscape einwandfrei, d.h. auf para steht "dateixy.php".
Öffne ich nun ein neues Fenster mithilfe von window.open(para,....), so steht die URL auch perfekt im Adressfenster und die Zieldatei wird aufgerufen !
Nun folgt folgendes Phänomen, das mich auf die Palme bringt.
Netscape startet zum öffnen des zweiten Fensters laut statuszeile im ersten Fenster java. Im zweiten Fenster in der Adressleiste steht brav die geforderte Zielurl. In der Datei dateixy.php wird nun die URL wieder ausgewertet und ein neues Verweisziel festgelegt. Das neue Verweisziel steht in einer PHP-Variablen, die nun wie folgt aufrufen möchte :
im head-Bereich von dateixy.php:
<?php
....
$verweis_neu = "../dir/dateineu.php";
echo"<SCRIPT LANGUAGE="JavaScript1.2" type="text/javascript"> \n";
echo"top.location.href="$verweis_neu"; \n";
echo"<{script> \n";
?>
und siehe da, Netscape kann dies nicht umsetzen. Der Wert von $verweis_neu ist ums verrecken nicht von PHP auf JS zu bekommen. Auch Versuche mit
echo"var target="$verweis_neu"; \n";
echo"top.location.href=target; \n";
haben kein Erfolg. Versuche ich einen alert(target), so steht nichts drinenn. Erfolg des ganzen ist, das Netscape mir das Verzeichnislisting von dem aktuellen Verzeichnis anzeigt.
Wer weiß, woran das liegen kann. Was muß ich versuchen ?????
Hintergrundinfo : benutze WINNT4SP6 mit apache1.3.12 und php4
mit Konfigurationsparameter "register_globals" auf on, so daß ich auch ohne form die Parameter der URL auswerten kann (auch ohne $HTTP_.._VARS[]).
Thanks for all your help, Gruß, Dirk
Servus nochmal, nur die Überschrift von meinem Posting war falsch. Ich meine natürlich Übergabe von PHP nach Javascript.
Tschuldigung, Dirk
Hallo Dirk,
im head-Bereich von dateixy.php:
<?php
....
$verweis_neu = "../dir/dateineu.php";
echo"<SCRIPT LANGUAGE="JavaScript1.2" type="text/javascript"> \n";
echo"top.location.href="$verweis_neu"; \n";
echo"<{script> \n";
^^^
eventuell ist dieser Tippfehler die Ursache. Es soll ja eigentlich </script> heißen.
»» echo"var target="$verweis_neu"; \n";
target ist js-technisch gesehen eine unglücklich gewählte Variable.
Ansonsten, wäre es nicht verkehrt, mal den generierten Quellcode, also das komplette javascript was entsteht zu posten.
Viele Grüße
Antje
Salüt, Antje,
erstmal Danke für Deine Hilfe.
echo"<{script> \n";
^^^eventuell ist dieser Tippfehler die Ursache. Es soll ja eigentlich </script> heißen.
war ein Postingtipfehler: heißt natürlich </script>
Zum Ergebnislisting des Javascripts:
Es scheint doch ein Problem mit der Werteübergabe und Auswertung der URL unter Neti zu geben. :-\
In meiner Auswertung der URL unter PHP versuche ich $verweis aus der URL "dateixy.php?verweis=datei neu.php¶2=irgendwas" per echo $verweis; im PHP Bereich auszugeben.
Dann steht dort nur "datei" und nicht "datei neu.php". Da dies nicht der gewünschte Wert ist, wird meine Auswertung natürlich nicht richtig ausgeführt (nämlich gar nicht) und somit ist die Variable $verweis_neu leer für Neti.
Schön gell, was soll ich tun ... doch mal per form versuchen ?
Gruß, Dirk
Hahaa,
ich habe das Problem für Neti gefunden:
in der URL steht folgende zielreferenz:
".../dateixy.php?verweis=datei neu.php&par2=irgendwas"
Neti mag nun nicht das Leerzeichen in der URL.
Wie bekomme ich nun die reguläre Expression für das Leerzeichen in URL rein ?
Gibts da Hilfe von Euch?
Gruß, Dirk
Hallo Dirk,
echo 'var target='.urlencode($neue_datei);
RTFM (-:
CYa
GONZO
Hallo, Gonzo
echo 'var target='.urlencode($neue_datei);
Geil, dank Dir...
bekomme ich das auch irgendwie in Javascript hin, ich mein das encoden von URLs ?
By the way .. was iss > RTFM
Gruß, Dirk
Hallo,
bekomme ich das auch irgendwie in Javascript hin, ich mein das encoden von URLs ?
<../../tecm.htm#a8>
Grüße
Klaus
Na, vielleicht kann man das so lösen :
ich habe das Problem für Neti gefunden:
in der URL steht folgende zielreferenz:
".../dateixy.php?verweis=datei neu.php&par2=irgendwas"Neti mag nun nicht das Leerzeichen in der URL.
Wie bekomme ich nun die reguläre Expression für das Leerzeichen in URL rein ?
Bevor der Verweis erzeugt wird, werden die Parameterwerte unter JS per escape(verweis) für Neti überarbeitet. Dann wird bspw. aus "datei neu.php" eben "datei%20neu.php". Der Wert so in den Verweis integriert, wird dann von Neti in brav erkannt. Neti macht daraus dann nicht mehr "datei" sondern "datei neu.php".
Iss das nun unsauber ???! Was meint Ihr ?
Gruß, Dirk