Copier la valeur d’un champ dans un autre

Eléphant du PHP | 108 Messages

09 mai 2019, 16:55

Bonjour Spols,

Je te remercie pour ton aide et tes explications.

Là, suis complètement largué.

Je vais essayer de te faire un code un peu nettoyé parce que c'est pleins de fonctions et de choses dans tous les sens, ça va prendre des pages ;)

Je ferai ça pendant le week end, trop de travail qui doit être fini d'ici demain.

Merci beaucoup pour ton temps et ton aide.

Eléphant du PHP | 108 Messages

10 mai 2019, 14:12

Bonjour Spols,

Voilà les codes (un peu nettoyé sinon ça va faire compliqué)

Le html avec les 2 formulaires

Code : Tout sélectionner

<!--FORMULAIRE PREMIER ONGLET--> <div class="row"> <div class="form-group col-sm-12"> <label for="societe" class="h4">Société</label> <input class="form-control" type="text" id="societe" size="35" placeholder="Société" autocomplete="on"> </div> </div> <div class="row"> <div class="form-group col-sm-12"> <label for="adresse" class="h4">Adresse</label> <input class="form-control" type="text" id="adresse" size="90" placeholder="Adresse Complète" autocomplete="on"> </div> </div> <!--TRAITEMENT ENVOI CONTRAT--> <div id="canvas">Canvas is not supported.</div> <script type="text/javascript">zkSignature.capture();</script> <button type="button" onclick="zkSignature.clear()">Effacer Signature</button> <br> <img id="saveSignature" alt="Saved image png"> <form> <label for="Email"></label> <input type="hidden" id="replyemail" size="35" value="Validation disclaimer" disabled> <br> <button type="button" class="btn btn-box" onclick="zkSignature.send()">Envoyer le contrat</button> </form> <!--FORMULAIRE DEUXIEME ONGLET--> <div class="row"> <div class="form-group col-sm-6"> <label for="name" class="h4">Société</label> <input type="text" class="form-control" id="societeclient" placeholder="Indiquez la société" required> <div class="help-block with-errors"></div> </div> <div class="row"> <div class="form-group col-sm-6"> <label for="name" class="h4">Société</label> <input type="text" class="form-control" id="societeclient" placeholder="Indiquez la société" required> <div class="help-block with-errors"></div> </div> <div class="row"> <button type="submit" id="form-submit" class="btn btn-box">Envoyer</button> <div id="msgSubmit" class="h3 text-center hidden"></div> <div class="clearfix"></div> </div>

Pour le premier formulaire, il y a un JS

En voici le résumé

Code : Tout sélectionner

send : function(){ var societe = document.getElementById('societe').value; var adresse = document.getElementById('adresse').value; dataform.innerHTML = '<input type="text" name="societe" value="' + societe + '"/>' + '<input type="text" name="adresse" value="' + adresse + '"/>' +
Et un fichier php (toujours pour le premier formulaire)

Code : Tout sélectionner

$societe = $_POST["societe"]; $adresse = $_POST["adresse"]; if( (!isset($_POST["email"])) || ($to == "[email protected]" ) || ($replyemail == "[email protected]")|| ($to == "" )){ echo("<p>Incorrect email address...</p>"); echo "<a href='#'>Complétez le formulaire</a>"; exit; } $subject = "Votre texte"; $curdir = dirname($_SERVER['REQUEST_URI']) . "/"; $dir = $_SERVER['SERVER_NAME'] . $curdir; $urlonly = geturlonly(); $body = " <p>$societe</p> <p>$adresse</p>
Pour le deuxième formulaire, il n'y a qu'un fichier php

Code : Tout sélectionner

<?php header('Content-Type: text/html; charset=utf-8'); $errorMSG = ""; // NAME if (empty($_POST["nomclient"])) { $errorMSG = "Name is required "; } else { $nomclient = $_POST["nomclient"]; } // Prenom if (empty($_POST["prenomclient"])) { $errorMSG = "Prenom is required "; } else { $prenomclient = $_POST["prenomclient"]; } $Entete = 'MIME-Version: 1.0' . "\r\n"; $Entete .= 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion(); $EmailTo = "mail"; $Subject = "Vous avez un nouveau message "; // prepare email body text $Body = ""; $Body .= "Nom du client : \n>" .$nomclient; $Body .= "\n"; $Body .= "Prenom du client : \n>" .$prenomclient; // send email $entete = 'MIME-Version: 1.0' . "\r\n"; $entete .= 'Content-type: text/html; charset=utf-8' . "\r\n"; $entete .= 'From: ' . $_POST['email'] . "\r\n"; $success .= mail($EmailTo, $Subject, $Body, $Entete, "From:".$email); // redirect to success page if ($success && $errorMSG == ""){ echo "success"; }else{ if($errorMSG == ""){ echo "Something went wrong :("; } else { echo $errorMSG; } } ?>
Merci d'avance pour les pistes et aides ;)

Bonne journée.

Mammouth du PHP | 1967 Messages

10 mai 2019, 15:30

merci je vois un peu plus claire mais il y a encore des choses que je ne comprends pas.
je ne comprends pas l'interet de ta partie de javascript, mais si elle marche laissons.
La fin de ton fichier de traitement du 1er formulaire termine via une redirection ? du type header(location:XXX); sinon comment l'utilisateur se retrouve t il de retour sur le formulaire ?

Dans tous les cas, vu ta structure de fichier complexe, je te la ferais pas modifier pour simplifier.
j'utiliserais les _SESSION
en tout début de formulaire HTML transformé en .php ajouter
<?php session_start();?> Attention même pas un retour à la ligne avant cet instruction
tes champs
<input type="text" class="form-control" id="societeclient" placeholder="Indiquez la société" required>
peuvent devenir
<input type="text" class="form-control" id="societeclient" placeholder="Indiquez la société" value="<?php echo $_SESSION['societe'];?>" required>

et dans ton fichier de traitement du premier formulaire commencer par session_start(); juste après le <?php
ensuite ajouté en dessous de
$societe = $_POST["societe"];
$adresse = $_POST["adresse"];
ceci
$_SESSION["societe"] = $societe;
$_SESSION["adresse"] = $adresse;

en espèrant qu'il n'y ai pas d'incompatibilité avec le reste du 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

11 mai 2019, 16:22

Bonjour Spols,

Merci pour toutes ces explications. Je teste tout cela ce soir ou demain.

Retour du test rapidement ;)

Merci encore pour ton aide et ton temps.

Eléphant du PHP | 108 Messages

11 mai 2019, 21:08

Retour d'expérience et de test.

Ca fonctionne parfaitement.

Merci beaucoup et surtout je pense avoir compris le principe.

Alors pour répondre à tes questions,
Le javascript, c'est parce que c'est un formulaire avec signature et qu'il gère la sauvegarde et l'envoi de la signature.
Le 1er formulaire envoie juste sur sa page avec un texte et un lien, faut que je peaufine ça.

Bref ça fonctionne

Un très grand merci à toi pour ton temps.
J'ai appris pleins de choses ;)