ugrás a tartalomhoz

GET adatok szövegmezőnek továbbadása

vmarci21 · 2012. Júl. 1. (V), 22.26
Van egy kód a honlapomon ami
  1. x=location.href  
  2. y=x.split("?")  
  3. x=y[1]  
  4. z=x.split("&")  
  5. for(i=0;i<z.length;i++)  
  6.  {  
  7.  k=z[i].split("=")  
  8. )  
  9.  }  
ez a kód feldolgozza a GET adatokat (ami az URL címben a ? után van)

Kérdésem:
Hogyan lehetne megcsinálni azt, hogy ha a változó=nev akkor az értéket berakja a [nev nevű mezőbe] <input class="nev">-be.
 
1

Helló!

Karvaly84 · 2012. Júl. 2. (H), 06.16
Nagyon egyszerűen így lehet:

contact.html
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>Contact</title>  
  6. <script type="text/javascript">  
  7.   
  8. function search(name) {  
  9.     var pairs = search.pairs || (search.pairs = location.search.substring(1).split("&")), i = 0;  
  10.     while (i < pairs.length) {  
  11.         if (pairs[i].indexOf(name) > -1)  
  12.             return decodeURIComponent(pairs[i].substring(name.length + 1));  
  13.         i++;  
  14.     }  
  15. }  
  16.   
  17. </script>  
  18. </head>  
  19. <body>  
  20.     <fieldset>  
  21.         <legend>Kapcsolat felvétel</legend>  
  22.         <form name="contact" action="sendmail.php" method="post">  
  23.             <table>  
  24.                 <tr>  
  25.                     <td>Név:</td>  
  26.                     <td><input name="name" type="text"></td>  
  27.                 </tr>  
  28.                 <tr>  
  29.                     <td>E-mail:</td>  
  30.                     <td><input name="email" type="text"></td>  
  31.                 </tr>  
  32.                 <tr>  
  33.                     <td>Üzenet:</td>  
  34.                     <td><textarea name="message"></textarea></td>  
  35.                 </tr>  
  36.                 <tr>  
  37.                     <td><input type="submit" value="Elküld"></td>  
  38.                     <td><input type="reset" value="Mégse"></td>  
  39.                 </tr>  
  40.             </table>  
  41.         </form>  
  42.         <script type="text/javascript">  
  43.           
  44.         var fields = document.forms["contact"];  
  45.         fields["name"].value = search("name") || "Adja meg a nevét!";  
  46.         fields["email"].value = search("email") || "Adja meg e-mail címét!";  
  47.         fields["message"].value = search("message") || "Írja meg üzenetét!";  
  48.           
  49.         </script>  
  50.     </fieldset>  
  51. </body>  
  52. </html>  
Mindent a markup-ba raktam.

Ha meghívod az oldalt paraméterezve akkor kitöltődnek a mezők. Pl.:
http://example.com/contact.html?name=Gipsz Jakab&email=jakab##kukac##mail.com&message=Placeholder for message...
Természetesen lehetne még finomítani de az elv kb. ennyi.

A decodeURIComponent függvényt érdemes használni, de van ez mellet egyéb is. Itt van egy cikk.
2

kösz

vmarci21 · 2012. Júl. 6. (P), 14.10
köszi, tesztelem
3

most így még egyszer ránézve

Karvaly84 · 2012. Júl. 6. (P), 16.26
most így még egyszer ránézve a kódra, a search függvény törzsébe a legelső sorba érdemes lehet egy olyat betenni, hogy name += "="; mert ha pl rákeresel a "var" paraméterre és közben van egy olyan, hogy "variant" akkor a variant előbb fent akad, és rosszul is jön vissza az érték. a return decodeURIComponent(pairs[i].substring(name.length + 1)); sorbol ekkor ki kel venni a +1 -et.
4

köszi

vmarci21 · 2012. Júl. 6. (P), 17.46
köszi, jó lett