Peter: Stringzerlegung oder auslesen von QUERYSTRINGS

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

  1. 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);

  2. 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

  3. 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