Formulaire interactif

Fermé
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 - 26 mai 2015 à 17:35
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 - 30 mai 2015 à 10:02
Bonjour,

Je suis sur un projet de développement de site web pour réservation de billet d'avion en ligne.

J'ai réalisé sur la première page un formulaire où le client choisira les critères de son vol, il précisera les nombre d'enfants et d'adultes, ensuite après avoir réservé son vol il sera redirigé vers un formulaire de renseignement d'identité et c'est là que mon problème survient :

J'ai réalisé sur cette nouvelle page un formulaire de renseignement d'identité, donc il n'y a aucun problème si le client est seul à voyager, en revanche si il veut réserver des billets pour plusieurs personnes, le formulaire doit être multiplié par le nombre de passagers afin d'avoir les renseignements d'identités de chacun d'eux.

Le nombre de passagers est récupéré sur la première page et il est stocké dans des variables SESSION afin de pouvoir les utilisées dans les pages suivantes

J'aimerais donc savoir comment puis-je réaliser cela
Peut-être est-ce du PHP ? Oui mais comment coder cela ?

Merci d'avance

5 réponses

blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
26 mai 2015 à 17:47
Salut,

Le plus simple vu que tu gardes la variable serait que tu mettes dans une fonction (par exemple) le code qui génère les champs d'information nécessaires, et lors du chargement du formulaire tu mettes une boucle avec comme nombre d'itération le nombre de passager et que tu mettes ta fonction (ou bloc de code si tu préfères) à l'intérieur, les champs d'information seront donc générés plusieurs fois.
0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7
27 mai 2015 à 15:11
SI je comprend bien, je dois créer une fonction qui crée un formulaire et ensuite faire une boucle avec cette fonction ?
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
Modifié par jordane45 le 27/05/2015 à 17:05
En fait je pense qu'il est plus pratique de sortir les balises <form> de la fonction et uniquement mettre les champs nécessaires au formulaire pour que lorsque la personne éditera les informations des différentes personnes il n'appuie qu'une seule fois sur la bouton "valider".

Par exemple :

function champsInput($cpt){
     echo "Prenom : <input type='text' name='prenom$cpt'>";
     echo "Nom: <input type='text' name='nom$cpt'>";
}

...

echo "<form name='form1'>";
for($i=0;$i<$nb_passager;$i++){
     champsInput($i);
}
echo "<input type='submit' name='valider'>";
echo "</form>";


Après tu peux l'améliorer en fixant des condition, si $i==0 alors c'est le premier passage donc tu peux affiche la balise form à ce moment , et si $i==nb_passager-1 alors c'est le dernier passage et tu peux mettre la balise input submit et fermer la balise form.

En espérant t'avoir aidé


EDIT : Ajout du LANGAGE dans les balises de code
0
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
27 mai 2015 à 17:28
Bonjour,

Pour faire du "dynamique" , tu pourrais tout aussi bien utiliser du javascript.
Et donc.. pas besoin de changer de page....

Par exemple
<?php
//traitement du submit:
if(isset($_POST['valider'])){
 $arrNom = isset($_POST['nom']) ? $_POST['nom'] : NULL;
 $arrPreNom = isset($_POST['prenom']) ? $_POST['prenom'] : NULL;
 
  Echo " <br> Liste des voyageurs :"; 
  for($i=0;$i<count($arrNom);$i++){
	 echo "<pre> Nom : ".$arrNom[$i] . "  Prenom : ".$arrPreNom[$i] . "</pre>";
	}
  
}

?>

<!doctype html>
<html lang="fr">
<head>
 <meta charset="UTF-8">
 <title> Formulaire Dynamique </title>
</head>
<body>

<script type="text/javascript">
 function genereInputs(){
  var nb = parseInt(document.getElementById('nb_voyageurs').value);
	var list = document.getElementById('liste_inputs');
	var newChamps = " <p><label> Nom:</label><input type='text' name='nom[]'> <label> Prenom:</label><input type='text' name='prenom[]'></p>";
  if(nb !='' && nb>0){
	 
	 for(var i=1;i<=nb;i++){ 
	   list.innerHTML += newChamps
	 }
	}
 }
</script>


  <div id="infos" style="margin-top:20px;padding:8px;border: 1px solid blue; width:250px;">
   <label> Nombre de voyageurs :</label>
	 <input type="text" id="nb_voyageurs" value="" style="width:20px;">
	 <input type="button" onclick="genereInputs();" value="GO !">
  </div>

  <div id="formulaire" style="margin-top:20px;min-height:80px;">
	 <span> LISTE DES VOYAGEURS </span>
   <!-- Formulaire -->
   <form action="" method="POST" name="monform">
    <div id="liste_inputs" style="padding:10px;border: 3px solid grey;" >
   
	  </div>
		<input type="submit" name="valider" value="valider">
   </form>
  </div>
 </body>
</html>

0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7
28 mai 2015 à 12:19
Bonjour,

J'ai préféré utiliser ta méthode car je maitrise mieux le PHP que le Javascript, en revanche j'ai du mal à comprendre les variables "$cpt" qui se trouvent dans les balises <input>

De même pour le "$i" qui se trouve dans l'appel de la fonction "champsInput($i)"
0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7
29 mai 2015 à 08:46
Je viens de comprendre les variables "$cpt" et "$i" en revanche pour le traitement des formulaires j'ai fais sur une autre page la récupération des champs des formulaires afin de les insérer dans ma base de données

J'ai pensé au code suivant mais malheureusement ça ne fonctionne pas :

<?php	session_start();		
			
			require_once('connect.php');
					
			
			for ($i = 1; $i <= $_SESSION['adultes'] + $_SESSION['enfants']; $i++)
				{
					
				$_SESSION['titre$i'] = $_POST['titre$i']; 

				$_SESSION['prenomt$i'] = $_POST['prenom$i'];
				
				$_SESSION['nom$i'] = $_POST['nom$i'];
				
				$_SESSION['jour$i'] = $_POST['jour$i'];
				
				$_SESSION['mois$i'] = $_POST['mois$i'];
				
				$_SESSION['annee$i'] = $_POST['annee$i'];
				
				$_SESSION['CI$i'] = $_POST['CI$i'];
					
				$_SESSION['mail$i'] = $_POST['mail$i'];
					
				$_SESSION['tel_portable$i'] = $_POST['tel_portable$i'];
					
				$_SESSION['tel_fixe$i'] = $_POST['tel_fixe$i'];
					
				}

?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
29 mai 2015 à 21:37
Hello,

Ca à l'air d'avancer ;) , quand tu dis que tu n'arrives pas à les récupérer que veux tu dire exactement? Tu appelles les variables $_SESSION et tu n'arrives pas à récupérer les valeurs?
0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7
30 mai 2015 à 10:02
En fait le dernier formulaire sincère bien dans ma base de données en revanche pas ceux d'avant
0