Copier la valeur d’un champ dans un autre

Eléphant du PHP | 62 Messages

12 juil. 2007, 23:09

Bonjour,

J’essaye de copier la valeur d’un champ avec java script mais je n’arrive pas.
Ici c'est le champ que je veu recuperer

Code : Tout sélectionner

<? echo '<br><input type="text" name="toto2" value="', $ligne[2], '" />'; ?>
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="<$ echo $toto2; ?>" } </script>
Et c'est ici que le champ toto2 doit etre copier

Code : Tout sélectionner

<input type="text" id="project_name"><br>
Merci d'avance

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

13 juil. 2007, 00:07

C'est javascript qui doit faire l'affectation, tu dois modifier la fonction f() pour affecter l'input toto2 dans l'input project_name. Tu dois ajouter pour cela un id à l'input toto2 pour pouvoir utiliser getElementById.

Voici les corrections:

Ici c'est le champ que je veux récupérer

Code : Tout sélectionner

<? echo '<br><input type="text" id="toto2" name="toto2" value="', $ligne[2], '" />'; ?>
Le bouton pour copier

Code : Tout sélectionner

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

Code : Tout sélectionner

<script> function f() { var obj = document.getElementById("project_name"); obj.value = document.getElementById("toto2").value; } </script>
Et c'est ici que le champ toto2 doit être copié

Code : Tout sélectionner

<input type="text" id="project_name"><br>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 62 Messages

13 juil. 2007, 01:27

Bonjour,

J’ai passer 3 heures a essayer toutes les méthode que mon cerveau a pus stokes jusqu'à la, et je croyez que justement celle-ci a été essayer, hélas je vois que non, car la votre fonctionne, je ne sais pas quoi dire a part un très grand merci, mais aussi une très bonne nuit.

Merci encore

Eléphant du PHP | 108 Messages

07 mai 2019, 15:20

Bonjour à toutes et à tous,

Je déterre un vieux sujet mais d'actualité pour moi.

J'ai 2 formulaires dans 2 onglet div sur la même page.

Le 1er formulaire a son propre JS et PHP et le 2ème également son propre code.

Je voudrais que certaines données du 1er formulaire se copient sur le 2ème formulaire lors de l'envoi du premier.

Comment il y a déjà plusieurs fonctions (enfin je pense, suis pas doué ;) ) est ce que je peux ajouter une fonction en plus lorsque l''utilisateur clique sur le bouton envoyer ?

Où est il possible de créer le script dans la page hmtl du formulaire directement ?
Pour moi, ça ne change rien que les données soient copiées "à la volée" ou pendant l'envoi du formulaire.

Merci pour vos avis et aides.

Bonne journée.

Mammouth du PHP | 1967 Messages

07 mai 2019, 15:50

Il vaut toujours mieux créer son propre post avec son problèmes même si il semble très proche d'un autre. de plus ce post date de 2007 soit 12 ans les version de php ont bien changé depuis.

L'envoie de ton formulaire vers php se fait en synchrone ou en asynchrone ? en d'autre mot est-ce que la page se recharge en cliquant sur envoyer ?

si oui, lors du réaffichage de la page, tu peux en php donnée des valeur par défaut à ton formulaire rempli deppuis la superglobale $_POST
si non, javascript peut copier la valeur d'un champs à un autre via le DOM et document.getElementById ou avec jQuery par exemple. il suffit de trouver la fonction appelé par le formulaire et lui ajouter les instructions (ajouter une seconde fonction est aussi possible).
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 108 Messages

07 mai 2019, 17:58

Re bonjour Spols,

J'ai bien remarqué que c'est du cold case ce message mais c'est tellement similaire.....

L'envoi du formulaire : le formulaire va vers la page .php de traitement où apparaît un texte et un lien .....

Donc javascript dans ce cas...

Est il pas possible de coder du js dans la page Html pour qu'à chaque changement d'imput par l'utilisateur, le copier du texte se fasse ?

Merci

Mammouth du PHP | 1967 Messages

08 mai 2019, 08:16

je suis pas sur que ce soit javascript, ca ne correspond pas à ta description. Y a t il un rechargelment de page ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 108 Messages

08 mai 2019, 11:04

je suis pas sur que ce soit javascript, ca ne correspond pas à ta description. Y a t il un rechargelment de page ?
En cliquant ça passe d'une page html vers la page php qui traine l'envoi du mail.

Mammouth du PHP | 1967 Messages

08 mai 2019, 11:46

donc il y a rechargement de page donc c'est la solution php qu'il faut envisager. lors de la création de ton formulaire, tu peux lui donné des valeur par défaut (value="VALUE") que tu puise depuis $_POST['VALUE']

si c'est pas claire donne nous un peu plus de ton code.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 108 Messages

08 mai 2019, 12:42

Re bonjour Spols,

La notion de rechargement de page m'échappe mais bon..... Comme ça sera toujours le même principe de codage que je vais employer, il me reste juste à retenir que c'est du rechargement (j'essaierai de comprendre plus tard ;) )

Effectivement moyennement claire pour mes faibles connaissances.

C'est en fait la même base sur laquelle tu m'as aidé concernant les cases à cocher (encore un grand merci, je viens de finir le code et c'est top)

Le code html du premier formulaire.

Code : Tout sélectionner

<label for="societe" class="h4">Société</label> <input class="form-control" type="text" id="societe" size="35" placeholder="Société" autocomplete="on">
Le code html du deuxième formulaire dans la même page html

Code : Tout sélectionner

<label for="name" class="h4">Société</label> <input class="form-control" type="text" id="societeclient" placeholder="Indiquez la société" required>
Donc première question

- Faut il que l'id soit le même ? J'imagine que non sinon ça va créer une erreur.

Et ensuite, je suis dans la pampa complète concernant le (value="VALUE")
Où dois je mettre ce code ?
Et aussi, en mettant ce code, est il quand même possible d'utiliser ce 2ème formulaire sans avoir complété le 1er ?

Merci

Mammouth du PHP | 1967 Messages

08 mai 2019, 14:44

essaye en 2eme formulaire ceci :
<label for="name" class="h4">Société</label>
<input class="form-control" type="text" id="societeclient" placeholder="Indiquez la société" required value="<?php if(!empty($_POST['societe']) echo $_POST['societe']; ?>">
ainsi lors de la création du second formulaire, si le premier a été complété, $_POST['societe'] contient la valeur rentrée dans le champs société mais n'éxiste pas sinon. le code donné vérifie si la variable éxiste et si c'est le cas retourne la valeur.

En effet il ne faut pas utiliser d'id identique sur une même page.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 108 Messages

08 mai 2019, 14:58

Encore un grand merci pour le temps passer à m'aider.

Donc si je comprends bien, tu me proposes de coller du PHP dans le fichier HTML que je dois donc renommer en PHP ?
La déclaration des variables est dans un autre fichier .PHP.
Est ce que je dois prévoir de déclarer les variables dans l'ancien fichier HTML qui deviendra PHP ?

Merci ;)

Mammouth du PHP | 1967 Messages

08 mai 2019, 15:57

si ton traitement de formulaire est dans un autre fichier que ton html, cela ne fonctionnera pas.

il faut soit tout grouper dans un seule fichier soit utiliser des variable de session par exemple.

la 2émé solution est plus simple à expliquer.
en tout début des 2 fichiers avant la moindre ligne d'html (même pas un retour à la ligne)
ajouter
<?php session_start();?>
afin de démarrer une session
dans le fichier de traitement au moment ou tu récupère $_POST['societe'], définir les variable de session correspondante
$_SESSION['societe'] = $_POST['societe'];

et dans ton formulaire html que tu transformera en php mon code convient si tu change _POST en _SESSION
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 108 Messages

08 mai 2019, 16:47

J'ai du mal m'expliquer.

Les 2 formulaires sont bien dans le même fichier HTML.

Je dois donc mettre

Code : Tout sélectionner

<label for="name" class="h4">Société</label> <input class="form-control" type="text" id="societeclient" placeholder="Indiquez la société" required value="<?php if(!empty($_POST['societe']) echo $_POST['societe']; ?>">
Mais mes questions .....

- Est ce qu'avec ce code, l'utilisateur peut quand même changer ce qui a été mis automatiquement ?
- J'imagine qu'il faut que je déclare dans mon fichier formulaire.html devenu .PHP les variables.

Je fais ça au début du fichier

Code : Tout sélectionner

$societe = $_POST["societe"];
?

Merci



PS : Je viens d'essayer de ce que j'ai indiqué mais ça ne fonctionne pas du tout.
La page ne charge même pas.

J'ai mis ceci dans l'head

Code : Tout sélectionner

<?php $societe = $_POST["societe"]; ?>
J'imagine que je dois démarrer le fichier par <?php mais alors j'ai une tonne d'erreur dans ma page.

Et bien entendu, le code que tu m'as conseillé.

Dans ce code, j'ai un message d'erreur :) unexpected echo (T_Echo) et google ne m'aide pas sur ce coup là :(

Mammouth du PHP | 1967 Messages

09 mai 2019, 08:34

que tes deux formualires sont sur le même fichier j'ai bien compris, mais c'est le traitement php de tes formulaire qui est dans un fichier séparé d'après ce que je comprends. et c'est là que se situe le problème.

La super globale $_POST contient toute les données d'u!n formulaire envoyée avec la méthode POST mais seulement lors du premier chargement de la page de traitement. à la fin de ce script $_POST est vidé par PHP. C'est pourquoi je te conseille d'utiliser $_SESSION qui dure le temps d'une session.

ce que tu appel déclaration de variable est utile que si tu utilise ces variables par la suite.
tu peux utiliser $societe par exemple et donc il faut avoir déclarer ta variable mais tu peux aussi utiliser $_POST['societe'] ou $_SESSION['societe'] directement dans le code.

montre nous tout ton code de formulaire et de traitement ca évitera des suppositions.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube