comment mettre des valeurs bout a bout pour un POST - PHP - Programmation
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> |
Et dans la barre d'adresse, tu verras bien &cache1=prefixetoto.
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.
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>
Marsh Posté le 08-02-2006 à 11:36:54
Pourquoi les questions de javascript tombent dans la section php aujourd'hui?
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> |
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;
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
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.
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