Page 1 sur 1

[PHP-JS] Copier des multiples champs dans d'autres

Posté : 13 juil. 2007, 13:42
par Akim13
Bonjour

J’utilise une fonction javascript pour copier la valeur dans champ dans un autre.

Le problème réside dans le faite que j’ai plusieurs champs a copié, mais je voudrais que tous les champs se copie en un seule clique et un seul bouton dans différent autres champs.



Ici c'est les champ que je veut récupérer

Code : Tout sélectionner

<? echo '<br><input type="text" id="toto1" name="toto1" value="', $ligne[1], '" />'; echo '<br><input type="text" id="toto2" name="toto2" value="', $ligne[2], '" />'; echo '<br><input type="text" id="toto3" name="toto3" value="', $ligne[3], '" />'; echo '<br><input type="text" id="toto4" name="toto4" value="', $ligne[4], '" />'; ?>

Le bouton pour copier

Code : Tout sélectionner

<input type="button" onclick="f()" value="modifier">

la fonction java script

Code : Tout sélectionner

<script> function f() { var obj = document.getElementById("project_name"); obj.value = document.getElementById("toto1").value; } </script>

Et c'est ici que le champ toto1, toto2, toto2, toto2 doive être copier

Code : Tout sélectionner

<input type="text" id="project_name"><br>

Code : Tout sélectionner

<input type="text" id="ref "><br>

Code : Tout sélectionner

<input type="text" id="email"><br>

Code : Tout sélectionner

<input type="text" id="ville"><br>

Merci

Posté : 13 juil. 2007, 13:47
par Ryle
Un peu de logique mon jeune padawan ;)

Si dans cette instruction :
var obj = document.getElementById("project_name"); 
obj.value = document.getElementById("toto1").value;
tu copies le contenu du champ "toto1" dans le champ "project_name", il ne devrait pas être compliqué de dupliquer ces deux lignes et de les modifier pour ensuite copier le champ "toto2" dans le champ "ref", le champ "toto3" dans le champ "email" etc. :)

Posté : 13 juil. 2007, 13:54
par Akim13
Bonjour,

Moi ce que je voulais c’est copier..

Code : Tout sélectionner

toto1 dans project_name toto2 dans ref toto3 dans email toto4 dans ville
Mais simultanément , et avec un seul clic

merci d’avance

Posté : 13 juil. 2007, 14:05
par Ryle
vi.. et ? ma solution elle ne te plait pas ? :)
Bon alors on va reprendre par étape et essayer de comprendre ce que tu fais..

Tu veux que quand on clique sur un bouton, ça copie tes 4 champs au lieu de n'en copier qu'un seul comme c'est le cas à l'heure actuelle.

Pour ça, il te faut un bouton. Ça tu l'as déjà pour copier le premier champ.
Il faut que ce bouton déclenche un traitement. Ça tu l'as déjà aussi, puisque lorsque l'on clique dessus, ton bouton appel la fonction f().
Il faut ensuite que ta fonction copie 4 champs au lieu d'un seul. Il faut donc qu'elle copie le premier (ce qui est déjà fait). Puis juste après l'avoir copié, il faut qu'elle copie le second. Puis après l'avoir copié il faut qu'elle copie le suivant etc.

Sachant que cette instruction copie "toto1" dans "project_name" :

Code : Tout sélectionner

document.getElementById("project_name").value = document.getElementById("toto1").value;
Tu devrais quand même pouvoir trouver assez facilement quelles sont les 3 lignes à ajouter dans ta fonction pour copier les 3 autres champs toto dans tes 3 champs à toi :)

Posté : 13 juil. 2007, 14:38
par Akim13
Bonjour

Malheureusement ca ne fonctionne pas

ya t'il une autres methode

Code : Tout sélectionner

<script javascript> function f() { document.getElementById("project_name").value = document.getElementById("toto1").value; document.getElementById("ref").value = document.getElementById("toto2").value; document.getElementById("email").value = document.getElementById("toto3").value; document.getElementById("ville").value = document.getElementById("toto4").value; } </script>
Mais je pense que c'est plus un problème de JS


Merci

Posté : 13 juil. 2007, 14:50
par zeus
Malheureusement ca ne fonctionne pas
Ce genre de message ne nous aide pas pour te répondre ;)

Plus sérieusement, est-ce que tu vois un message d'erreur dans ton navigateur ?
Il est possible qu'il ne trouve pas tes champs :-k

Posté : 13 juil. 2007, 15:09
par Akim13
Bonjour,

En faite je travaille sur Mozilla
Mais après votre dernier message j’ai essayer sur Internet explorer, donc ça fonctionne.

Comment le rendre compatible avec mozilla ? SVP

Cordialement,

Posté : 13 juil. 2007, 15:10
par Ryle
Y aurait pas un espace en trop dans l'attribut id de ce champ ? :-s

Code : Tout sélectionner

<input type="text" id="ref "><br>

Posté : 13 juil. 2007, 16:25
par Akim13
Bonjour,

probleme resolu, merci a vous tous,


Voila le corriger

Code : Tout sélectionner

<?php $ligne = array( 'ligne 1', 'ligne 2', 'ligne 3', 'ligne 4', ); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test Formulaire</title> <script type="text/javascript"> //<![CDATA[ function $() { var elements = new Array(); for (var i=0,len=arguments.length;i<len;i++) { var element = arguments[i]; if (typeof element == 'string') { var matched = document.getElementById(element); if (matched) { elements.push(matched); } else { var allels = (document.all) ? document.all : document.getElementsByTagName('*'); var regexp = new RegExp('(^| )'+element+'( |$)'); for (var i=0,len=allels.length;i<len;i++) if (regexp.test(allels[i].className)) elements.push(allels[i]); } if (!elements.length) elements = document.getElementsByTagName(element); if (!elements.length) { elements = new Array(); var allels = (document.all) ? document.all : document.getElementsByTagName('*'); for (var i=0,len=allels.length;i<len;i++) if (allels[i].getAttribute(element)) elements.push(allels[i]); } if (!elements.length) { var allels = (document.all) ? document.all : document.getElementsByTagName('*'); for (var i=0,len=allels.length;i<len;i++) if (allels[i].attributes) for (var j=0,lenn=allels[i].attributes.length;j<lenn;j++) if (allels[i].attributes[j].specified) if (allels[i].attributes[j].nodeValue == element) elements.push(allels[i]); } } else elements.push(element); } if (elements.length == 1) return elements[0]; else return elements; } function f() { $('project_name').value = $('toto1').value; $('ref').value = $('toto2').value; $('email').value = $('toto3').value; $('ville').value = $('toto4').value; } //]]> </script> </head> <body> <form action="" method="post"> <fieldset> <legend>Partie I</legend> <?php echo ' <input type="text" name="toto1" id="toto1" value="', $ligne[0], '" /> <br /> <input type="text" name="toto2" id="toto2" value="', $ligne[1], '" /> <br /> <input type="text" name="toto3" id="toto3" value="', $ligne[2], '" /> <br /> <input type="text" name="toto4" id="toto4" value="', $ligne[3], '" />'; ?> </fieldset> <p> <input type="button" value="Modifier" onclick="f();" /> </p> <fieldset> <legend>Partie II</legend> <input type="text" name="project_name" id="project_name" /> <br /> <input type="text" name="ref" id="ref" /> <br /> <input type="text" name="email" id="email" /> <br /> <input type="text" name="ville" id="ville" /> </fieldset> </form> </body> </html>
Merci a vous tous,