2017-10-21 96 views
0

Je ne peux pas imprimer la valeur de l'entrée du formulaire à client.html à la table dans server.html. Il doit être écrit en Javascript et en utilisant la méthode GET pour le formulaire.Javascript - Obtenir une valeur à partir de formulaire par Get méthode

client.html:

<form action="server.html" method="get"> 
<p> 
Name: 
<input type="text" id="txtname" name="txtname" />  
</p> 
</form> 

server.html:

<head> 
<script type="text/javascript"> 

    function getUrlVars() { 
     var vars = {}; 
     var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
      function (m, key, value) { 
       vars[key] = value; 
      }); 
     return vars; 
    } 
var name= unescape(getUrlVars()[document.getElementById("txtname")]); 
document.getElementById("idname").innerHTML=name; 
</script> 
</head> 
<body> 
<table> 
<tr> 
    <td>Name:</td> 
    <td id="idname"></td> 
</tr> 
</table> 
<body> 
+1

Je pense que cette question pourrait vous aider (https [Comment obtenir la valeur des paramètres GET?]://stackoverflow.com/questions/979975/how-to-get-the-value-from-the-get-parameters) – 3Dos

+1

'getUrlVars() [document.getElementById (" txtname ")]' accédera toujours à 'vars [" [objet HTMLInputElement] "]'. Voulez-vous dire 'getUrlVars() [document.getElementById (" txtname "). Value]'? – Xufox

Répondre

0

Il y a quelques petites choses ici:

Vous essayez de régler la innerHTML de #idname-hoten.value, qui est indéfini.

getUrlVars()[docuemnt.getElementById("txtname")] ne valide pas non plus. Vous pouvez simplement utiliser getUrlVars().txtname pour obtenir le paramètre de requête.

Vous essayez également de définir la valeur avant que le DOM a été traité - le JS ne peut pas définir la valeur de l'élément car il n'a pas encore été placé sur la page.

résolvez les erreurs et le déplacement de la JS à la fin de la balise body fixe ceci:

<head> 
</head> 
<body> 
<table> 
    <tr> 
    <td>Name:</td> 
    <td id="idname"></td> 
    </tr> 
</table> 
<script type="text/javascript"> 
    function getUrlVars() { 
    var vars = {}; 
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, 
     function (m, key, value) { 
     vars[key] = value; 
     }); 
    return vars; 
    } 

    var name= unescape(getUrlVars().txtname); 
    document.getElementById("idname").innerHTML = name; 
</script> 
</body> 
+0

@Xufox Retiré cette ligne de l'explication, j'avais changé le correctif et j'ai oublié de changer l'explication pour refléter –