Gast: Request Parameter in hidden field schreiben

Hallo,

kann mir jemand weiterhelfen wie ich einen RequestParameter beim Aufruf einer Seite entgegennehmen und in ein hidden Field eines Formulars auf der gleichen/aufgerufenen Seite packen kann?

Danke im Voraus.

  1. Liebe Mitdenker,
    liebe Wissende,
    liebe Neugierige,

    ja!

    kann mir jemand weiterhelfen wie ich einen RequestParameter beim Aufruf einer Seite entgegennehmen und in ein hidden Field eines Formulars auf der gleichen/aufgerufenen Seite packen kann?

    So könnte der Weg sein:

    <script type="text/javascript">

    alert(document.URL);

    var parser = document.createElement('a');
    /*parser.href = "http://example.com:3000/pathname/?search=test#hash";*/
    parser.href = document.URL;

    parser.protocol; // => "http:"
    parser.hostname; // => "example.com"
    parser.port; // => "3000"
    parser.pathname; // => "/pathname/"
    parser.search; // => "?search=test"
    parser.hash; // => "#hash"
    parser.host; // => "example.com:3000"

    alert(parser.search);

    function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split('&');
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split('=');
            if (decodeURIComponent(pair[0]) == variable) {
                return decodeURIComponent(pair[1]);
            }
        }
        console.log('Query variable %s not found', variable);
    }
    </script>

    http://stackoverflow.com/questions/2090551/parse-query-string-in-javascript

    und dann getElementById('id_des_hidden_feldes').value = wert;

    Spirituelle Grüße
    Euer Robert

    --
    Möge der Forumsgeist wiederbelebt werden!
    1. Tach!

      kann mir jemand weiterhelfen wie ich einen RequestParameter beim Aufruf einer Seite entgegennehmen [...] kann?
      var parser = document.createElement('a');
      parser.href = document.URL;

      Bist du sicher, dass der Umweg über ein a-Element notwendig ist? document.location und window.location existieren auch noch und liefern .search sofort.

      dedlfix.

      1. Danke für die Hinweise. Leider habe ich es noch nicht komplett zum Laufen gebracht. Nachfolgend mein aktueller Entwicklungsstand:

        JAVASCRIPT

        <script type="text/javascript">  
          
        function getQueryVariable(variable) {  
        	  
        	alert('1');  
          
        	var query = window.location.search.substring(1);  
               var vars = query.split("&");  
               for (var i=0;i<vars.length;i++) {  
            	  
            	   alert('for');  
                       var pair = vars[i].split("=");  
                       if(pair[0] == variable){  
                    	  
                    	   alert('2');  
                    	  
                    	   getElementById('kontakt_id').value = pair[1];  
                    	   alert( getElementById('kontakt_id').value );  
                    	   return pair[1];  
                    	  
                       }  
               }  
               return(false);  
        }  
        </script>
        

        HTML BODY
        <body onload="getQueryVariable('id')">

        HTML FORM

        <form method="get" name="contactform" action="/KontaktForm">  
        				<table>  
        					<tr>  
        						<td><label for="name">Frage 1*</label></td>  
        						<td><input name="kontakt_name" id="name" maxlength="80" type="text" /></td>  
        					</tr>  
        					<tr>  
        						<td><input type="hidden" name="kontakt_id" id="kontakt_id" value="unbekannt" /></td>  
        						<td></td>  
        					</tr>  
        					  
        					  
        				</table>  
        			  
        			</form>
        

        Wenn ich die Seite jetzt also mit www.wasweißich.de/kontakt.html?id=0815 aufrufe bekomme ich im JS auch die Werte "1", "for" und "2" ausgegeben. Allerdings nicht mehr alert( getElementById('kontakt_id').value ) was vermuten lässt, dass beim Setzen hier noch Probleme vorliegen.

        Kurioserweiße geht das aber sogar soweit, dass ich in der Zugrunde liegenden Java-Klasse nicht mal den Wert "unbekannt" erhalte, sondern einfach gar nichts?!?!

        Kann mir hier noch jemand einen Hinweis geben was ich hier übersehe?

        Danke im Voraus.

        1. Hallo Gast,

          getElementById('kontakt_id').value = pair[1];

          hast du mal einen Blick in die Javascript-/Fehlerkonsole deines Browsers geworfen? Da müsste sowas wie "TypeError: document.getElementById(...) is null" stehen. Versuch mal

          document.getElementById('kontakt_id').value = pair[1];

          Gruß, Jürgen

          1. Hallo Gast,

            getElementById('kontakt_id').value = pair[1];

            hast du mal einen Blick in die Javascript-/Fehlerkonsole deines Browsers geworfen? Da müsste sowas wie "TypeError: document.getElementById(...) is null" stehen. Versuch mal

            document.getElementById('kontakt_id').value = pair[1];

            Gruß, Jürgen

            Autsch...danke für diesen erhellenden, blosstellenden und schmerzhaften Moment zugleich :)

        2. Liebe Mitdenker,
          liebe Wissende,
          liebe Neugierige,

          ja!

          Danke für die Hinweise. Leider habe ich es noch nicht komplett zum Laufen gebracht. Nachfolgend mein aktueller Entwicklungsstand:

          JAVASCRIPT

          <script type="text/javascript">

          function getQueryVariable(variable) {

          alert('1');

          var query = window.location.search.substring(1);
                 var vars = query.split("&");
                 for (var i=0;i<vars.length;i++) {
              
                  alert('for');
                         var pair = vars[i].split("=");
                         if(pair[0] == variable){
                      
                          alert('2');
                      
                          getElementById('kontakt_id').value = pair[1];

          Denk daran, dass ein Name-Value-Paar auch unvollständig sein kann. Es muss also kein = und kein Wert vorhanden sein. Dann würde die obige Zuweisung einen Fehler verursachen.
          Frag also vorher nach "if (pair[1])".

          alert( getElementById('kontakt_id').value );
                          return pair[1];
                      
                         }
                 }
                 return(false);
          }
          </script>

            
            
            
          Spirituelle Grüße  
          Euer Robert
          
          -- 
          Möge der Forumsgeist wiederbelebt werden!