Ecrire dans un champ le contenu d'un autre

Eléphant du PHP | 64 Messages

23 juil. 2005, 03:24

Bonjour,
mes recherches infructueuses et n'y connaissant rien à javascript, ça serait sympa si vous m'indiquiez une astuce en javascript pour un problème de formulaire.

Voilà, j'ai un formulaire avec 3 champs : dossier, chemin1, chemin2
dossier contient une certaine valeur, j'aimerais qu'elle s'affiche dans les deux autres champs en "live", c'est à dire que si je modifie dossier, la nouvelle valeur doit être modifiée dans les champs chemin1 et chemin2.

Si vous pouviez m'aider je vous en remercierais.

Bonne journée.

Mammouth du PHP | 19672 Messages

23 juil. 2005, 08:05

À quoi ressemblent les données qui sont dans chemin1 et chemin2, peux-tu mettre un exemple ? Parce que si c'est exactement trois fois la même valeur, c'est complètement inutile.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 64 Messages

23 juil. 2005, 17:31

Bonjour,
le champ dossier contient un nom de dossier.
les champs chemin1 et chemin2 contiennent quant à eux le chemin pour accéder au dossier.

Par exemple :
dossier : alberticle
chemin1 : ../alberticle
chemin2 : ../../alberticle

Et quand on modifie le champ dossier, les champs chemin sont aussi modifiés.

Merci et bonne journée.

Mammouth du PHP | 19672 Messages

23 juil. 2005, 17:54

Ok, alors tu peux effectivement utiliser un gestionnaire d'évènement onchange sur le premier champ qui appelle une fonction que tu devras créer et qui fera quelque chose de ce genre :
Formulaire
...
<form action="" method="post" id="form_1">
<input type="text" name="dossier" id="dossier" value="" onchange="modifchemin(); return false;">
<input type="text" name="chemin1" id="chemin1" value="">
<input type="text" name="chemin2" id="chemin2" value="">
...
</form>
Fonction dans l'en-tête de la page
<script type="text/javascript">
function modifchemin()
{
    var dossier = document.forms['form_1'].elements['dossier'].value;
    document.forms['form_1'].elements['chemin1'].value = '..\/'+ dossier;
    document.forms['form_1'].elements['chemin2'].value = '..\/..\/'+ dossier;
}
</script>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 138 Messages

24 juil. 2005, 09:02

Salut,

Cyrano, pq mets-tu un "return false" à la fin du onchange ?
La fonction se suffit à elle même et elle lance aucune commande particuliere qui enregistre le formulaire. :roll:
Il y a des gens qui ont une bibliothèque comme des eunuques ont un harem (V. Hugo)

Mammouth du PHP | 19672 Messages

24 juil. 2005, 09:29

Parce que si ton formulaire est en bas de page, ça évite que la page se repositionne en haut dans le navigateur. C'est facultatif.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 138 Messages

24 juil. 2005, 09:40

Merci
je m'était plusieurs fois posé la question du comment faire pour eviter ça, mais j'avoue que je ne m'était pas réellement penché sur le pb :oops:
Il y a des gens qui ont une bibliothèque comme des eunuques ont un harem (V. Hugo)

Eléphant du PHP | 64 Messages

25 juil. 2005, 08:04

Merci bien ça marche nickel.

Bonne journée.