Bonjour,
Je mets en place une billetterie en ligne sur le site d'une salle de cinéma.
Le spectateur peut acheter plusieurs tickets à des tarifs différents et des séances différentes dans la même commande.
Pour chaque ticket, je dois créer une ligne dans ma table contenant les coordonnées de l'acheteur mais je voudrais que le spectateur n'ait à saisir qu'une seule fois ses coordonnées.
J'ai donc créé un formulaire avec trois champs (nom/prenom/email) à remplir par le spectateur et en dessous les mêmes champs pour chaque ticket générés par une boucle foreach et qui peuvent se remplir automatiquement d'après les champs saisis par le spectateur si celui-ci clique sur "copier les coordonnées".
Débutante en Javascript, je n'arrive pas à copier ces champs.
En pièce jointe, une image de ce que j'aimerais obtenir lorsque l'acheteur clique sur "Copier les coordonnées"
et ci-dessous le code html généré
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <!-- lacheteur remplit les trois champs nom, prenom, email --> <tr height="30"> <td colspan="3"> Nom* <input style="width:80px;" class="fValidate['required']" id="lastnameall" name="lastnameall" value="Jean" type="text"> Prénom* <input style="width:80px;" class="fValidate['required']" id="firstnameall" name="firstnameall" value="Dupont" type="text"> Email* <input style="width:120px;" class="fValidate['required']" id="emailall" name="emailall" value="jd@wanadoo.fr" type="text"> </td> </tr> <!-- lacheteur peut copier ses coordonnées si tous les billets sont à son nom --> <tr height="45"> <td colspan="3" valign="top"> <input onclick="copier()" value="Copier vos coordonnées" type="button"> </td> </tr> <!-- Champs générés par une boucle foreach pour chaque ticket --> <tr><td><strong>PLEIN TARIF WEB Registration :</td> <td colspan="2" align="left"> Date de la séance : Jeudi 23 Août 2012</td></tr> <tr><td> Prénom</td><td><input name="firstname" value="Jean" id="firstname[0][3149]" default="" type="text"></td></tr> <tr><td> Nom</td><td><input name="lastname" value="Dupont" id="lastname[0][3149]" default="" type="text"></td></tr> <tr><td> Email</td><td><input name="email" value="jd@wanadoo.fr" id="email[0][3149]" default="" type="text"></td></tr> <tr><td><strong>PLEIN TARIF WEB Registration :</td> <td colspan="2" align="left"> Date de la séance : Samedi 11 Août 2012</td></tr> <tr><td> Prénom</td><td><input name="firstname" value="Jean" id="firstname[0][3150]" default="" type="text"></td></tr> <tr><td> Nom</td><td><input name="lastname" value="Dupont" id="lastname[0][3150]" default="" type="text"></td></tr> <tr><td> Email</td><td><input name="email" value="jd@wanadoo.fr" id="email[0][3150]" default="" type="text"></td></tr> <tr><td><strong>PLEIN TARIF WEB Registration :</td> <td colspan="2" align="left"> Date de la séance : Dimanche 12 Août 2012</td></tr> <tr><td> Prénom</td><td><input name="firstname" value="Jean" id="firstname[0][3151]" default="" type="text"></td></tr> <tr><td> Nom</td><td><input name="lastname" value="Dupont" id="lastname[0][3151]" default="" type="text"></td></tr> <tr><td> Email</td><td><input name="email" value="jd@wanadoo.fr" id="email[0][3151]" default="" type="text"></td> </tr> <tr> <tr><td colspan="3"><input value="agree_terms" id="terms" type="checkbox"> J'accepte les <a href="/" target="_blank">conditions générales de vente</a>.</td></tr>
Voici mon code php et javascript. J'arrive uniquement à copier les champs du dernier ticket. Je suppose qu'il faudrait plutôt mettre ma fonction dans le <head> et utiliser une boucle for mais je n'ai pas réussi à le faire.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <?php ##Ici lacheteur remplit ses coordonnées ## ?> <tr height="30"> <td colspan="3"> Nom* <input class="fValidate['required']" type="text" id="lastnameall" name="lastnameall" value="" /> Prénom*<input class="fValidate['required']" type="text" id="firstnameall" name="firstnameall" value="" /> Email* <input class="fValidate['required']" type="text" id="emailall" name="emailall" value="" /> </td> </tr> <tr height="45"> <td colspan="3" valign="top"> <input type="button" onclick="copier()" value="Copier vos coordonnées" /></td></tr> <?php ##On copie les coordonnées saisies ## // pour chaque séance foreach($cart['eventids'] as $ekey => $evalue) { // pour chaque ticket foreach($cart['ticktes'] as $tkey=>$tvalue) { // pour chaque champ du formulaire (le formulaire et ses champs sont identifiés dans ma base de données) foreach ($fields as $key=>$field) { echo '<td class="regpro_vtop_aleft"><input type="text" name="form['.$row->name.']['.$count.']'.$position_html.'" value="'.$row->default_value.' id="'.$row->name.'['.$count.']'.$position_html.'" '.$row->params.' />'; } $nom = ""; $prenom = ""; $email = ""; $nom = 'lastname['.$formcounter.']['.$cart["ticktes"][$tkey]->id.']'; $prenom = 'firstname['.$formcounter.']['.$cart["ticktes"][$tkey]->id.']'; $email = 'email['.$formcounter.']['.$cart["ticktes"][$tkey]->id.']'; ?> <script type = "text/javascript"> function copier() { var nomspec = document.getElementById("lastnameall").value; document.getElementById("<?php echo $nom;?>").value = nomspec; var prenomspec = document.getElementById("firstnameall").value; document.getElementById("<?php echo $prenom;?>").value = prenomspec; var emailspec = document.getElementById("emailall").value; document.getElementById("<?php echo $email;?>").value = emailspec; } </script> } }
Merci pour votre aide
Partager