Traiter résultats d'un GET comme valeurs d'une formulaire

Traiter résultats d'un GET comme valeurs d'une formulaire - HTML/CSS - Programmation

Marsh Posté le 06-03-2006 à 12:40:55    

Bonjour,
 
J'arrive à récupérer les informations transmises par l'url en javascript.
Mais je n'arrive pas à transformer ces résultats en valeur d'une formulaire.
Par exemple :
?identifiant=toto&motdepasse=pass
Je voudrais que dans ma page les champs d'un nouvau formulaire soient automatiquement remplis avec ces infos.
J'ai donc fait (je vous passe la récupération des infos via l'url) :
 
   var mdp = ParamValeur("motdepasse" );
     document.forms["form1"].motdepasse.value=mdp;
 
Seulement, le mot de passe ne s'affiche pas comme prévu dans le formulaire...
 
Pourriez vous m'aider ??
Merci d'avance,

Reply

Marsh Posté le 06-03-2006 à 12:40:55   

Reply

Marsh Posté le 06-03-2006 à 13:16:22    

quel est le code de la fonction ParamValeur stp ?

Reply

Marsh Posté le 06-03-2006 à 13:22:24    

pourquoi tu le fais pas en PHP ton truc ?

Reply

Marsh Posté le 06-03-2006 à 13:31:15    

J'utilise un code trouvé sur trucweb.
Le plus simple est que je propose tte la page :
<script type="text/javascript" language="javascript">
<!-- Début
// ********************************************
// Récupération de paramètre d'une requête HTTP
// ou récupération des données d'un formulaire.
// Auteur : Oznog (www.trucsweb.com)
// ********************************************
 
// NE PAS MODIFIER CE CODE
var paramOk = true;
 
function FaitTableau(n) {
  // Création d'un tableau (array)
  // aux dimensions du loginbre de paramètres.
  this.length = n;
  for (var i = 0; i <= n; i++) {
    this[i] = 0
  }
  return this
}
 
function ParamValeur(nValeur) {
  // Récupération de la valeur d'une variable
  // Pour créer la variable en Javascript.
  var nTemp = "";
  for (var i=0;i<(param.length+1);i++) {
    if (param[i].substring(0,param[i].indexOf("=" )) == nValeur)
      nTemp = param[i].substring(param[i].indexOf("=" )+1,param[i].length)
  }
  return Decode(nTemp)
}
 
// Extraction des paramètres de la requête HTTP
// et initialise la variable "paramOk" à false
// s'il n'y a aucun paramètre.
if (!location.search) {
  paramOk = false;
}
else {
  // Éliminer le "?"
  nReq = location.search.substring(1,location.search.length)
  // Extrait les différents paramètres avec leur valeur.
  nReq = nReq.split("&" );
  param = new FaitTableau(nReq.length-1)
  for (var i=0;i<(nReq.length);i++) {
    param[i] = nReq[i]
  }
}
 
// Décoder la requête HTTP
// manuellement pour le signe (+)
function Decode(tChaine) {
  while (true) {
    var i = tChaine.indexOf('+');
    if (i < 0) break;
    tChaine = tChaine.substring(0,i) + '%20' + tChaine.substring(i + 1, tChaine.length);
  }
  return unescape(tChaine)
}
// End -->
</script>
 
<script type="text/javascript" language="javascript">
if (paramOk) {
  login = ParamValeur("login" );
  mdp = ParamValeur("mdp" );
   var mdp = ParamValeur("mdp" );
    document.forms["form1"].champ_text.value=mdp;
 
 
}
</script>
</head>
 
<body>
<form method="get" action="" name="form1">
<p>login :  
  <input type="text" name="login" /></p>
<p>mot de passe :  
  <input type="text" name="mdp" /></p>
<p><input type="submit" name="Submit" value="Soumettre" /></p>
</form>
<script type="text/javascript" language="javascript">
<!-- Début
// ***************************************
// POUR L'EXEMPLE, AFFICHAGE DES VARIABLE
// ***************************************
if (paramOk) {
  document.write(login);
  document.write(", " );
  document.write(mdp);
 
}
// End -->
</script>
 
 
</body>
</html>
 
Je suis obligé de le faire en javascript car le serveur ne permet pas d'autres languages...

Reply

Marsh Posté le 06-03-2006 à 13:56:41    

ben dans ce cas ce que tu veux faire ne rimes à rien du tout
mais bon on va t'aider
 
si je te dis que pour ecrire dans une page c'est document.write (même si c'est déprécié, on va pas aller chercher plus loin et te laisser dans ton code caca)
maintenant je te dis que le login est contenu dans la variable login, et que le mot de passe est contenu dans mdp
 
ensutie je te dis que pour construire un formulaire c'est de la manière suivante :  
 
<form>
<input type="text" name="login" value="lavaleurquetuveux">
<input type="text" name="mdp" value="lavaleurquetuveux">
</form>
 
Maitenant je te dis que tu peux combiner des variables et du textes dans un document.write (la concatenation)
 
exemple :  
document.write('mon chien a ' + age + ' ans');
si age vaut 4, ca me donne : mon chien a 4 ans.
 
Maintenant je te laisse faire

Message cité 1 fois
Message édité par gatsu35 le 06-03-2006 à 13:57:15
Reply

Marsh Posté le 06-03-2006 à 14:06:34    

tu l'heberge sur quel serveur ton truc ?

Reply

Marsh Posté le 06-03-2006 à 14:16:00    

gatsu35 a écrit :

ben dans ce cas ce que tu veux faire ne rimes à rien du tout
mais bon on va t'aider
 
si je te dis que pour ecrire dans une page c'est document.write (même si c'est déprécié, on va pas aller chercher plus loin et te laisser dans ton code caca)
maintenant je te dis que le login est contenu dans la variable login, et que le mot de passe est contenu dans mdp
 
ensutie je te dis que pour construire un formulaire c'est de la manière suivante :  
 
<form>
<input type="text" name="login" value="lavaleurquetuveux">
<input type="text" name="mdp" value="lavaleurquetuveux">
</form>
 
Maitenant je te dis que tu peux combiner des variables et du textes dans un document.write (la concatenation)
 
exemple :  
document.write('mon chien a ' + age + ' ans');
si age vaut 4, ca me donne : mon chien a 4 ans.
 
Maintenant je te laisse faire


 
C un serveur d'application Tomcat.
 
Mon pb est de faire apparaitre la valeur contenue dans "mdp" dans le champs mdp.
exemple non fonctionnel (mais c ca l'idée) :  
<input type="text" name="mdp" value="document.write(mdp);">
 

Reply

Marsh Posté le 06-03-2006 à 14:25:13    

houlalalalala
si c'est un serveur d'application TOMcat, tu n'as pas du JSP derrière ? ça serait plus propre que de passer par du JS
 
Ce que je ne comprend pas c'est pourquoi tu veux mettre le mdp et le login dans des champs de formulaires alors que s'ils viennent d'une requête http ils proviennent forcément d'un formulaire précédent (ou peut etre d'un lien <a href=""> precedemment.
 
m'enfin passons
 
bon tu as vu ce que je t'ai donné non d'un chien ? tu as toutes les clés en main :o
 
tu as juste à faire un document.write(<input type="text".........
 
je te laisse finir

Reply

Marsh Posté le 06-03-2006 à 14:28:23    

ok
merci

Reply

Marsh Posté le 06-03-2006 à 14:40:40    

tu nous diras quand ca marcheras :o

Reply

Marsh Posté le 06-03-2006 à 14:40:40   

Reply

Marsh Posté le 06-03-2006 à 14:41:41    

enfin si tu as une méthode plus simple je suis preneur...
Mais je ne maitrise ni le javascript ni le jsp.
 
Le but pour tout te dire est de passer les identifants de l'applications qui tourne sur tomcat en paramètre depuis notre intranet.
 
Donc ensuite je compte mettre en place ce formulaire qui se rempli avec l'url et qui s'envoi au chargement de la page pour lancer l'application.
 
tout ca pour contourner un pb de cookies...
 
PS : Je suis désolé mais malgré les renseignements donnés je n'y arrive pas, en effet :   document.write("<input type='text' name='login' value='login'>" ); affiche "login" et non pas sa valeur.... désolé...

Reply

Marsh Posté le 06-03-2006 à 14:42:58    

je te donne pas la réponse pour que tu apprennes ce que tu fais
je t'ai dit tout à l'eur :  
si je fais  
document.write('mon chien a ' + age + ' ans');  
si age vaut 4, ca me donne : mon chien a 4 ans
 
la concaténation signifie de mettre la varaible dans une chaine de caractère :  
 
var chien="fitou"
document.write("mon chien s'appelle" + chien) <== ca donne quoi comme résultat ça ?


Message édité par gatsu35 le 06-03-2006 à 14:43:46
Reply

Marsh Posté le 06-03-2006 à 15:12:27    

je suis vraiment un ******
merci beaucoup pour ta patience.

Reply

Marsh Posté le 06-03-2006 à 15:51:47    

alors tu as trouvé :o ?

Reply

Marsh Posté le 06-03-2006 à 16:18:19    

oui oui
ca marche
merci

Reply

Marsh Posté le 06-03-2006 à 16:22:45    

vas y donne le code que tu as maintenant, on sais jamais tu pourrais avoir fait un truc moche (déjà que c'est moche au dessus)

Reply

Marsh Posté le 06-03-2006 à 16:24:41    

 document.write("<input type='hidden' name='uid' value='"+login+"'>" );
  document.write("<input type='hidden' name='pwd' value='"+mdp+"'>" );
 
je sais c moche...

Reply

Marsh Posté le 06-03-2006 à 16:25:20    

reste plus qu'à mettre tes champs dans un formulaire
 
<form></form>

Reply

Marsh Posté le 06-03-2006 à 16:55:55    

oui ca j'ai fait aussi.
je t'ai juste posté la solution à mon pb

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed