mathefritz: Local Storage

Beitrag lesen

SOLL mit Javascript geschehen, 1.Warum SOLL das?

weil mein Bekannter es ggf. lokal weiterentwickeln können will und sich noch nicht für lokale PHP-Installation interessiert hat ( auf seinem Windows Laptop ); auf meinem Linux Desktop wars mir mal gelungen, aber auf eine Weise bei der es, wie Helfer bei linuxforen.de voraussagten, wieder weg sein würde . Traf zu.

  1. Warum nützt POST bei JavaScript

ja wie kann man denn per js in der Zielseite die durch window.location.href = ... aktiv wird auf die Daten die 'submitted' wurden zugreifen?

Aber wie auch immer - ich würde es ja ohne JavaScript machen.

mit PHP hatte ich ja schon praktisch fertig - aber siehe oben

Hier mal meine jetzigen Experimente; hab mich mit meinem Bekannten etwas zerstritten,
versucht jetz wohl ähnliches alleine.

/* AUFBAU DER 3 SEITEN
* 1.Seite: input text, input email, 
*         input text, input text, input text
* 2.Seite: select mit 16 options
*         4 input radio, gleichnahmig
*         1 checkbox
*         1 textarea
*
* 3.Seite: input text, input email, } default aus
*         input text, input text   } 1. Seite

*         select mit 16 options    } wie 2.Seite, default von dort
*
*         input text  } default aus 1. Seite, 5. input
*
*         4 input radio
*         1 checkbox

*         1 Textarea
* Übergang von 1. zu 2. zu 3. Seite mit window.location.href = ...
* Datenübertragung via Parametern in ..., zusammengebaut mit javascript,
* die action der 1. und 2. formulare sind javascript-Funktionen .
* PROBLEM: Sonderzeichen in den Texten die nicht 'verboten' werden können,
*         z.B. '%', daher als Trennzeichenfolg zum Splitten des Parameter-
*         strings String.fromCharacterCode(1,2);
*         Leider
*         funktioniert  z.b. mit 'NN%N@N?N=NNNNN' ( die ' sind nicht enthalten )
*         nicht.
* ==============================================================================
*/
// Code für Übergang 1.->2. Seite
function passData()
{ var    inputs = document.getElementsByTagName('input')
        ,daten  = 'jsWIRBLER SIGN UP2.php?'
  ;
  for(var j = 0; j < 4; j++) // name, email, postadresse, city; zipcode
  {
      daten += inputs[j].value +  String.fromCharCode(1,2);
  } 
} // ============================================================================
// 2.Seite zu 3. Seit
  function passData()  { var splitAt = String.fromCharCode(1,2);
  
     var fromAndToLocation
         = 
           'jsCIRBLER SIGN UP3.php?'                       //neues ziel
         +  ( decodeURI(window.location.href)             //durchreich
                                                         // Params
            ).substr(window.location.href.indexOf('?')+1)
     ;
     var data = document.getElementsByTagName('option');
       
     var j = 0;
     while( !data[j].selected ) j++  // finde selectierte Gegend und merke
     ;                               // den Index; in jsCIRBLER SIGN UP3.php
     fromAndToLocation += splitAt +j;// sollte die Reihenfolge dieselbe sein
       
     data = document.getElementsByTagName('input');
     j = 0;
     while( !data[j].checked ) j++;      // geklicktem level finden

     fromAndToLocation += splitAt + j    // und merken;
                       +  splitAt 
                       + (data[4].checked) ? 1 : 0 // partner  
                       +  splitAt
                       +  document.getElementsByTagName('textarea')[0].value;        window.location.href = encodeURI(fromAndToLocation);
  }// ==================================================================
// DATENÜBERNAHME IN 3.SEITE
   function datenUebernahme(){

    var daten = decodeURI( window.location.href
                          .substr( window.location.href.indexOf('?')+1) 
                         )
                         . split( String.fromCharCode(1,2) );

    var dst = document.getElementsByTagName('input'); // REIHEOFLGSÄNDERUNG IM
    
    for(var j = 0; j++ < 4; )    dst[j].value // name, email, postadresse,
                            = daten[j];      // city       ,zipcode,
    dst[5 + 1*daten[6] ]    = 1;             // level  ??? 
    dst[9]                  = daten[7];      // partner
    
    document.getElementsByTagName('option')[ daten[5] ].selected = 1 // area
    
    document.getElementsByTagName('textarea').value = daten[5]
   } 
window.addEventListener('load', datenUebernahme());