Javascript Variable an URL anhängen
Matthias
- javascript
Hi,
versuche eine Variable an eine URL anzuhängen klappt aber nich.
function Go(x) {
if(x == "nothing") {
document.forms[0].reset();
document.forms[0].elements[0].blur();
return;
}
else if(x == "end")
top.location.href = parent.frames[1].location;
else {
this.location.replace("uebersicht_fahrzeugdetails.php?reifen="+x+"");
}
}
kommt immer so wirres Zeug wie 7,5%20x%2018, dabei sollte einfach nur
7.5 x 18 darstehen.
Hi there,
kommt immer so wirres Zeug wie 7,5%20x%2018, dabei sollte einfach nur
7.5 x 18 darstehen.
Das aber genau besagt das "wirre Zeug". Leerstellen werden so dargestellt, das ist kein Bug sondern ein feature. (%20 bedeutet hexadezimal 32, was der Ascii-Wert für eine Leerstelle ist)
Jo merci, das habe ich jetzt auch endlich begriffen.
Wie kann ich den in der Funktion noch weitere Variablen übergeben, die ich vorher in PHP definiert habe ?
Grüsse
Maze
Hi,
z.B. so:
Aufrufende Datei:
<?php
$variable = "wert";
<a href=""datei.php?".$variable">Link</a>
?>
Empfangende Datei:
<?php
$variable = $_POST['variable'];
echo $variable; //Ausgabe >> "wert"
?>
MfG Hopsel
Warum funktioniert die Variablenübergabe so:
onChange="Go(this.form.groesse.options[this.form.groesse.options.selectedIndex].value, 5)"
da übergebe ich einfach mal eine Zahl 5 mit.
Wenn ich aber das ganze mit PHP dynamisch machen will, geht das nicht, warum:
onChange="Go(this.form.groesse.options[this.form.groesse.options.selectedIndex].value, <?php echo $felgeli; ?>)"
Grüsse
Maze
Hi,
onChange="Go(this.form.groesse.options[this.form.groesse.options.selectedIndex].value, <?php echo $felgeli; ?>)"
Was ist denn der Wert von $felgeli?
Lass dir den mal vorher mit echo ausgeben:
echo $felgeli;
exit;
MfG Hopsel
Ein String "DIABLO".
Irgendwas kleines ist falsch
Hi,
Ein String "DIABLO".
Irgendwas kleines ist falsch
Versuch mal:
onChange="Go(this.form.groesse.options[this.form.groesse.options.selectedIndex].value, '<?php echo $felgeli; ?>')"
MfG Hopsel
Jo das wars, vielen Dank für deine Hilfe.
Grüsse
Matthias
Wie kann ich den in der Funktion noch weitere Variablen übergeben, die ich vorher in PHP definiert habe ?
Dem Browser ist es nicht nur egal wo Du die Werte definiert hast, er erfährt sogar nichts davon....
<script type="text/javascript">
function xyz() {
<?php echo "foo=bar"; ?>
alert ("foo ist: "+foo);
}
</script>
Hi,
kommt immer so wirres Zeug wie 7,5%20x%2018, dabei sollte einfach nur
7.5 x 18 darstehen.
du kannst die Leerzeichen doch auch mit %-Zeichen dekodieren.
Bsp.: 7,5%x%18
In der PHP-Datei brauchst du dann nur noch die %-Zeichen wieder mit Leerstellen ersetzen.
MfG Hopsel
Hallo,
du kannst die Leerzeichen doch auch mit %-Zeichen dekodieren.
Wo? In einer URI? Nein!
Bsp.: 7,5%x%18
^Wenn Du das in eine URI schreibst, dann dürfte ein HTTP-Server, der das HTTP-Protokoll strict befolgt, ein request mit dieser URI nicht annehmen, sondern ein 400 Bad Request zurücksenden. In einer URI _muss_ nach % eine Hexadezimale Zahl stehen. Dazu gehört "x" nicht.
viele Grüße
Axel
Hi,
Bsp.: 7,5%x%18
^Wenn Du das in eine URI schreibst, dann dürfte ein HTTP-Server, der das HTTP-Protokoll strict befolgt, ein request mit dieser URI nicht annehmen, sondern ein 400 Bad Request zurücksenden. In einer URI _muss_ nach % eine Hexadezimale Zahl stehen. Dazu gehört "x" nicht.
dann eben & oder = oder $ oder !
MfG Hopsel
Hi,
dann eben & oder = oder $ oder !
oder "+", was den Vorteil hätte, hierfür definiert zu sein. Genau wie "%20".
Cheatah
Hi (gut geschlafen?),
Hi,
dann eben & oder = oder $ oder !
oder "+", was den Vorteil hätte, hierfür definiert zu sein. Genau wie "%20".
und was nehm ich, wenn in den Variablen das "+" auftaucht?
MfG Hopsel
Hi,
und was nehm ich, wenn in den Variablen das "+" auftaucht?
was meinst Du damit? Es ist ein Sonderzeichen, d.h. wenn Du nicht seine besondere Bedeutung übermitteln willst, musst Du es eh kodieren. Das Problem existiert also nicht.
Cheatah
Hi,
[Das + Zeichen]
was meinst Du damit? Es ist ein Sonderzeichen, d.h. wenn Du nicht seine besondere Bedeutung übermitteln willst, musst Du es eh kodieren. Das Problem existiert also nicht.
Nehmen wir an, ich habe einen String der Marke "3+4". Was sieht der Standard vor?
MfG Hopsel
Hallo,
Nehmen wir an, ich habe einen String der Marke "3+4". Was sieht der Standard vor?
Wenn du diese Formel im search-Teil einer HTTP-URL übergeben willst, dann sieht der Standard so aus:
http://www.faqs.org/rfcs/rfc1738.html
...
; HTTP
httpurl = "http://" hostport [ "/" hpath [ "?" search ]]
...
search = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
^ ^ ^ ^ ^
direkt dürfen also nur diese Zeichen und uchar drin stehen.
...
uchar = unreserved | escape
...
unreserved = alpha | digit | safe | extra
^ ^ ^ ^
was hierzu zählt, kannst Du selbst nachsehen.
Das "+" zählt zu safe, hat aber im Datenstrom bei der Übertragung von Formulardaten eine besondere Bedeutung http://de.selfhtml.org/cgiperl/intro/formularverarbeitung.htm#datenstrom, muss also, wenn es diese Bedeutung nicht hat, trotzdem escaped werden.
...
escape = "%" hex hex
...
HexHex steht für den hexadezimalen ASCII-Code des Zeichens. Bei "+" ist das %2B.
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
Um das zu testen, erstelle Dir ein Formular mit einem INPUT type="text" action="#" und method="GET". Trage ins Eingabefeld die Formel ein, sende das Formular ab und schau in der aufgerufenden URL nach, was der Browser draus gemacht hat. Gib auch mal "3+4 4+5" ein, um zu sehen, wann ein "+" unescaped verwendet wird.
viele Grüße
Axel