Stringzerlegung oder auslesen von QUERYSTRINGS
Peter
- javascript
Hi!
Ich möchte den Datenstring, den meine Seite geschickt bekommt (also z.B www.AYZ.de?Text1=Blablabla&Text2=Dies+ist+der+2.+Text)
mit JavaScript auslesen, niun hab ich mier gedacht, schreib eine Funktion, die diesen String zerlegt und dann sortiert.
Nun suche ich entweder einen Befehl, der mich direckt zum Ziel führt ODER ABER die Möglichkeit, den String zu zerlegen.
(Ich min ein bisschen verwöhnt von VB z.B. mid Mid(Text,Start,Länge), sowas unter Java wäre echt super...
Na dann, Danke, Peter
use Mosche;
Ich möchte den Datenstring, den meine Seite geschickt bekommt (also z.B www.AYZ.de?Text1=Blablabla&Text2=Dies+ist+der+2.+Text)
mit JavaScript auslesen, niun hab ich mier gedacht, schreib eine Funktion, die diesen String zerlegt und dann sortiert.
http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe/index.htm
sollte dir helfen
use Tschoe qw(Matti);
gruss namens-vetter,
wenn Du damit leben kannst, dass der folgend gepostete code
einige einschraenkungen hinsichtlich der erlaubten zeichen
http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe/index.htm#a5
(wie dort beschrieben) aufweist, kannst Du auch mal diesen
5-zeiler ausprobieren:
function getURLparameters() {
if (self.location.search.indexOf("=") == -1) {return;}
var parameterArray = unescape(self.location.search).substring(1).split("&");
for (var i=0;i<parameterArray.length;i++) {
parameterArray[i] = parameterArray[i].split("=");
eval("query." + parameterArray[i][0] + " = "" + parameterArray[i][1] + """);
}
}
eingebettet in eine mit erklaerungen versehene anwendung
schaut das ganze dann so aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>getURLparameters.html</title>
<script language="JavaScript" type="text/javascript">
<!--
/*
im objekt query stehen die parameterName-parameterWert-paare;
alle weiteren funktionen koennen ueber die objekt-schreibweise(punktoperator z.b.: "query.content")
auf die werte zugreifen - mit "if(query.parameterName)" kann geprueft werden, ob ein entsprechender
eintrag (parameterName) existiert;
die zweite moeglichkeit des zugriffs nutzt die array-eigenschaften eines js-objekts:
im oben genannten bsp. kann mit "if(query['parameterName'])" dasselbe ergebnis erreicht werden;
noch ein bsp. fuer die arrayschreibweise - hier werden alle namen und parameter des noch unbekannten
objekts ausgelesen und dargestellt:
function getQueryProps() {
var text = "";
for (property in query) {
text += property + " = " + query[property] + ";";
}
return text;
}
alert(getQueryProps());
*/
// ------------------------------------------------------------------------------------------
var query = new Object();
function getQueryProps() {
var text = "";
for (property in query) {
text += property + " = " + query[property] + ";\n";
}
return text;
}
function getURLparameters() {
if (self.location.search.indexOf("=") == -1) {return;}
var parameterArray = unescape(self.location.search).substring(1).split("&");
for (var i=0;i<parameterArray.length;i++) {
parameterArray[i] = parameterArray[i].split("=");
//alert(parameterArray[i][0] + " = "" + parameterArray[i][1] + "";");
//eval(parameterArray[i][0] + " = "" + parameterArray[i][1] + "";");
eval("query." + parameterArray[i][0] + " = "" + parameterArray[i][1] + """);
}
alert(getQueryProps());
}
//-->
</script>
</head>
<body onload="self.getURLparameters();">
<table cols="1" rows="1" width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="center" valign="middle">
<form name="myForm" method="get" target="_blank" action="getURLparameters.html">
<table cols="3" rows="6" cellspacing="0" cellpadding="10" border="0">
<tr>
<td align="left" valign="top">Familienname</td>
<td align="left" valign="top">:</td>
<td align="left" valign="top"><input type="text" name="sureName" size="35" maxlength="30"></td>
</tr>
<tr>
<td align="left" valign="top">Vorname</td>
<td align="left" valign="top">:</td>
<td align="left" valign="top"><input type="text" name="name" size="35" maxlength="30"></td>
</tr>
<tr>
<td align="left" valign="top">Sraße</td>
<td align="left" valign="top">:</td>
<td align="left" valign="top"><input type="text" name="street" size="35" maxlength="30"></td>
</tr>
<tr>
<td align="left" valign="top">PLZ</td>
<td align="left" valign="top">:</td>
<td align="left" valign="top"><input type="text" name="zipCode" size="35" maxlength="30"></td>
</tr>
<tr>
<td align="left" valign="top">Ort</td>
<td align="left" valign="top">:</td>
<td align="left" valign="top"><input type="text" name="location" size="35" maxlength="30"></td>
</tr>
<tr>
<td align="left" valign="top"> </td>
<td align="left" valign="top"> </td>
<td align="left" valign="top"><input type="submit" value=" abschicken "></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
viel spass und by(t)e by(t)e - peterS. - pseliger@gmx.net
Hallo, Peter,
Ich möchte den Datenstring, den meine Seite geschickt bekommt (also z.B www.AYZ.de?Text1=Blablabla&Text2=Dies+ist+der+2.+Text)
mit JavaScript auslesen, niun hab ich mier gedacht, schreib eine Funktion, die diesen String zerlegt und dann sortiert.
Nun suche ich entweder einen Befehl, der mich direckt zum Ziel führt ODER ABER die Möglichkeit, den String zu zerlegen.
<script>
var args = "";
var loc = window.location.href;
var q = loc.indexOf("?");
if (q==-1) return false;
loc = loc.substring(q+1);
var pairs = loc.split("&");
for (var i=0; i<pairs.length;i++){
if (global) eval(pairs[i]);
var keyval = pairs[i].split("=");
args[keyval[0]] = unescape(keyval[1]);
}
document.write(args);
</script>
Ungetestet (habe ich irgendwo gefunden) - so ähnlich müßte es gehen. Vielleicht kannst Du auch etwas mit dem CSJS Request Object for Javascript anfangen:
http://www.andrewu.co.uk/request.asp?ref=CSJSsrc
Grüße,
Sebastian