comment mettre des valeurs bout a bout pour un POST

comment mettre des valeurs bout a bout pour un POST - PHP - Programmation

Marsh Posté le 08-02-2006 à 00:01:25    

Je repose ma question....
 
<input name=\"cache\" type=\"hidden\" id=\"cache\" value= Thisform.input.value>
 
voila... au lieu de une seule valeur envoyer, je voudrais en envoyer deux sous la forme
machin.value + input.value
 
exemple:
"le chien " + "du voisin" ...  
en admettant que "du voisin" est deja defini par Thisform.input.value que dois-je modifier dans ma ligne de code ci dessus ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 08-02-2006 à 00:01:25   

Reply

Marsh Posté le 08-02-2006 à 00:41:33    

C'est difficile de répondre (pour ce cas à propos d'un chien, ou le cas précédent d'un Monsieur) parce qu'il faudrait plus d'information.
 
Pourquoi s'embêter du côté client alors que ce genre de manip se fait habituellement du côté serveur où l'on dispose généralement d'un langage plus évolué PHP, ou Java, que du côté client où l'on a les pauvres javascript et vbscript ?
 
D'ou vient ce préfixe ("le chien" ) ou se suffixe ("du voisin" ) ? Est-ce un préfixe constant ou variable ? D'ailleurs, est-ce un préfixe ou suffixe qu'il faut ajouter ? C'était plus clair dans le cas du Monsieur.
 
En javascript, on peut changer le contenu d'un champ avec
 document.nom_de_la_forme.nom_du_champ.value = "prefixe"+"autrechose"
Par exemple :

<html>
<head>
<script language=javascript>
function traite_et_envoi() {
   ma_forme.cache1.value="prefixe"+ma_forme.saisie1.value;
   ma_forme.submit();
}
</script>
</head>
<body>
<form name="ma_forme" method="get">
<input type="text" name="saisie1" id="saisie1">
<input type="hidden" name="cache1" id="cache1">
<p>  
<input type="button" value="Envoi" onClick=traite_et_envoi()>
</form>
</body>
</html>

Et dans la barre d'adresse, tu verras bien &cache1=prefixetoto.

Reply

Marsh Posté le 08-02-2006 à 00:43:02    

yoh...
merci


---------------
http://www.ypikay.com
Reply

Marsh Posté le 08-02-2006 à 01:44:21    

olivthill a écrit :

C'est difficile de répondre (pour ce cas à propos d'un chien, ou le cas précédent d'un Monsieur) parce qu'il faudrait plus d'information.
 
Pourquoi s'embêter du côté client alors que ce genre de manip se fait habituellement du côté serveur où l'on dispose généralement d'un langage plus évolué PHP, ou Java, que du côté client où l'on a les pauvres javascript et vbscript ?
 
D'ou vient ce préfixe ("le chien" ) ou se suffixe ("du voisin" ) ? Est-ce un préfixe constant ou variable ? D'ailleurs, est-ce un préfixe ou suffixe qu'il faut ajouter ? C'était plus clair dans le cas du Monsieur.
 
En javascript, on peut changer le contenu d'un champ avec
 document.nom_de_la_forme.nom_du_champ.value = "prefixe"+"autrechose"
Par exemple :

<html>
<head>
<script language=javascript>
function traite_et_envoi() {
   ma_forme.cache1.value="prefixe"+ma_forme.saisie1.value;
   ma_forme.submit();
}
</script>
</head>
<body>
<form name="ma_forme" method="get">
<input type="text" name="saisie1" id="saisie1">
<input type="hidden" name="cache1" id="cache1">
<p>  
<input type="button" value="Envoi" onClick=traite_et_envoi()>
</form>
</body>
</html>

Et dans la barre d'adresse, tu verras bien &cache1=prefixetoto.


 
Voici mon code et ça ne marche pas
peux tu m'éclairer parce que javascript et moi... ça fait 12...
Merci en tout cas
 
 
<Script language="javascript">  
function blogblog() {  
   Thisform.cache.value = "blog " + Thisform.input.value;  
   Thisform.input.value = Thisform.cache.value;  
   Thisform.submit();  
}
</script>

 
<form action="resultat.php" method="post" class="sideboxtitle">
<input name="input" type="text" class="sideboxtitle" size="20">
<br><input type="submit" name="submit" value="GO" onClick="blogblog">
<input name="cache" type="hidden" id="cache" value= Thisform.input.value ></form></td>


---------------
http://www.ypikay.com
Reply

Marsh Posté le 08-02-2006 à 11:36:54    

Pourquoi les questions de javascript tombent dans la section php aujourd'hui?

Reply

Marsh Posté le 08-02-2006 à 11:48:58    

Ca ne marche pas pour plusieurs raisons :
 
1. "Thisform" n'est pas défini.
Il faut avoir par exemple <form name="thisform" ...
ou bien passer le nom de la forme courante en paramètre par
onClick=blogblog(this) et récupérer ce paramètre dans la fonction qui serait défini par function blogblog(Thisform).
 
2. Javascript est un peu capricieux avec les espaces. Pour certains navigateurs, ton code contient un peu trop d'espaces en plusieurs endroits. En règle général, avec javascript, il vaut mieux éviter les espaces avant et après "=", "+", "<", ">", etc. , même si c'est moins lisible et moins beau.
 
3. Il est recommandé de choisir des noms qui ne sont pas des mots réservés.
Ce n'est pas très judicieux de choisir d'appeler ses champs "input" et "cache",  d'appeler le bouton "submit", d'appeler le formulaire "thisform". Il vaut mieux donner des noms qui éclairent sur le contenu des objets, par exemple "prenom", "var_temp", "bt_envoi", "f_saisie_etat_civil".
 
4. Il est préférable de n'avoir qu'un seul "submit". Dans le code il y en a deux puisqu'il y a à la fois le bouton de type "submit", et Thisform.submit();. Si l'on utilise Thiform.submit(), alors il vaut mieux avoir un bouton de type "button".
 
5. Il me semble que certains navigateurs préfèrent voir onClick=blogblog() plutôt que onClick="blogblog".
 
Je suis arrivé à quelque chose qui marche un peu mieux :

<html>
<head>
<Script language="javascript">  
function blogblog(Thisform) {  
   Thisform.cache.value = "blog " + Thisform.input.value;  
   Thisform.input.value = Thisform.cache.value;  
   Thisform.submit();  
}  
</script>  
 
</head>
<body>
<form method="get" name="la_forme">  
<input name="input" type="text" class="sideboxtitle" size="20">  
<br>
<input name="cache" type="hidden" id="cache">
<input type="button" name="go" value="GO" onClick=blogblog(la_forme)>  
</form>
</body>
</html>

Pour le test, j'ai mis "get" au lieu de post", mais cela devrait passer avec "post" aussi. Un faux bug est causé par l'espace dans "blog" + Thisform.input.value; . Le navigateur le remplace par un signe "+", ce qui est l'un des moyens standards pour éviter un espace dans une url un autre moyen est "%20".
 
Par ailleurs, si le champ caché ne sert qu'à cela, alors il aurait été plus pratique d'utiliser une simple variable ordianaire ou même rien du tout, et d'avoir un simple Thisform.input.value = "blog" + Thisform.input.value;
 
 

Reply

Marsh Posté le 08-02-2006 à 21:35:02    

LOL j'ai tout fait en php...
plus simple
en fonction de l'origine du clic, il rajoute ceci ou cela
et ça marche
mais en tout cas merci à tous


---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-02-2006 à 13:35:50    

comment on recupère l'origine d'un clic?
suis curieux... c'est tout!
merci de la réponse.

Reply

Sujets relatifs:

Leave a Replay

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