Retour en arrière en affichant les données de l'ancienne page
Bonjour tout le monde,
Je réalise un site marchand en PHP.
Je suis entrain de réaliser une page pour que les clients s'inscrivent au site.
Voici le formulaire d'inscription :
Code:
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246
| <?php
/* On récupère si elle existe la valeur de la région envoyée par le formulaire */
$idr = isset($_POST['region'])?$_POST['region']:null;
$ide = isset($_POST['departement'])?$_POST['departement']:null;
$idv = isset($_POST['ville'])?$_POST['ville']:null;
$rech_regions = R_inscription::Afficher_region();
$code_region = array();
$region = array();
/* On active un compteur pour les régions */
$nb_regions = 0;
if($rech_regions != false)
{
while($ligne = mysql_fetch_assoc($rech_regions))
{
array_push($code_region, $ligne['Reg_id']);
array_push($region, $ligne['Reg_nom']);
/* On incrémente de compteur */
$nb_regions++;
}
}
?>
<link href="contenu/css/inscription.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />
<form name="client" id="client" method="POST" action="Index.php?action=inscription">
<div id="title">INSCRIPTION</div>
<table>
<tr>
<td>Titre</td>
<td>
<?php
echo '<input type="radio" name="titre" value="M" ';
if (isset($_POST['titre']) and ($_POST['titre']=="M")) echo ' checked="checked"';
echo '>M</input>';
echo '<input type="radio" name="titre" value="Mlle" ';
if (isset($_POST['titre']) and ($_POST['titre']=="Mlle")) echo ' checked="checked"';
echo '>Mlle</input>';
echo '<input type="radio" name="titre" value="Mme" ';
if (isset($_POST['titre']) and ($_POST['titre']=="Mme")) echo ' checked="checked"';
echo '>Mme</input>';
?>
</td>
</tr>
<tr>
<td>Nom</td>
<!-- 'type="text" permet le champ de saisit correspondant au nom du client lors de sa création -->
<td><input type="text" name="nom" value="<?php if(isset($_POST['nom'])) echo($_POST['nom']); ?>" /></td>
</tr>
<tr>
<td>Prénom</td>
<!-- 'type="text" permet le champ de saisit correspondant au prénom du client lors de sa création -->
<td><input type="text" name="prenom" value="<?php if(isset($_POST['prenom'])) echo($_POST['prenom']); ?>" /></td>
</tr>
<tr>
<td>Date de naissance</td>
<!-- 'type="text" permet le champ de saisit correspondant a la date de naissance du client lors de sa création -->
<td><select name="jours">
<?php
$i = 1;
while($i <= 31)
{
$selected = (isset($_POST['jours']) and $_POST['jours'] == $i)?'selected="selected"':'';
echo '<option value="'.$i.'" '.$selected.'>'.$i.'</option>';
//echo '<option value="'. $i .'">'. $i .'</option>'."\n";
$i++;
}
?>
</select>
<select name="mois">
<?php
$i = 1;
while($i <= 12)
{
$selected = (isset($_POST['mois']) and $_POST['mois'] == $i)?'selected="selected"':'';
echo '<option value="'.$i.'" '.$selected.'>'.$i.'</option>';
// echo '<option value="'. $i .'">'. $i .'</option>'."\n";
$i++;
}
?>
</select>
<select name="annees">
<?php
$i = 1940;
while($i <= date('Y'))
{
$selected = (isset($_POST['annees']) and $_POST['annees'] == $i)?'selected="selected"':'';
echo '<option value="'.$i.'" '.$selected.'>'.$i.'</option>';
//echo '<option value="'. $i .'">'. $i .'</option>'."\n";
$i++;
}
?>
</select>
</td>
</tr>
<tr>
<td>Mail</td>
<!-- 'type="text" permet le champ de saisit correspondant au mail du client lors de sa création -->
<td><input type="text" name="mail" value="<?php if(isset($_POST['mail'])) echo($_POST['mail']); ?>"/></td>
</tr>
<tr>
<td>Mot de passe</td>
<!-- 'type="text" permet le champ de saisit correspondant au mot de passe du client lors de sa création -->
<td><input type="password" name="motPasse" value="<?php if(isset($_POST['motPasse'])) echo($_POST['motPasse']); ?>"/></td>
</tr>
<tr>
<td>Région</td>
<td>
<select name="region" id="region" onchange="document.forms['client'].submit();">
<option value="-1">- - - Choisissez une région - - -</option>
<?php
for($i = 0; $i < $nb_regions; $i++)
{
?>
<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td>
<?php
mysql_free_result($rech_regions);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
?>
Département
</td>
<td>
<?php
$rech_dept = R_inscription::Afficher_departement($idr);
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des départements */
$code_dept = array();
$nom_dept = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */
while($ligne_dept = mysql_fetch_assoc($rech_dept))
{
array_push($code_dept, $ligne_dept['Dept_code']);
array_push($nom_dept, $ligne_dept['Dept_nom']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="departement" id="departement" onchange="document.forms['client'].submit();">
<option value="-1">- - - Choisissez un département - - -</option>
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_dept[$d]); ?>"<?php echo((isset($ide) && $ide == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option>
<?php
}
?>
</select>
<?php
/* Un petit coup de balai */
// mysql_free_result($rech_dept);
}
?>
</td>
</tr>
<tr>
<td>
<?php
//mysql_free_result($rech_dept);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($ide) && $ide != -1)
{
?>
Ville
</td>
<td>
<?php
$rech_vil = R_inscription::Afficher_ville($ide);
/* Un petit compteur pour les villes*/
$nv = 0;
/* On crée deux tableaux pour les numéros et les noms des départements */
$id_vil = array();
$cp_vil = array();
$nom_vil = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */
while($ligne_vil = mysql_fetch_assoc($rech_vil))
{
array_push($id_vil, $ligne_vil['Vil_id']);
array_push($cp_vil, $ligne_vil['Vil_cp']);
array_push($nom_vil, $ligne_vil['Vil_nom']);
$nv++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="ville" id="ville" onchange="document.forms['client'].submit();">
<option value="-2">- - - Choisissez une ville - - -</option>
<?php
for($v = 0; $v<$nv; $v++)
{
?>
<option value="<?php echo($id_vil[$v]); ?>"<?php echo((isset($idv) && $idv == $id_vil[$v])?" selected=\"selected\"":null); ?>><?php echo($nom_vil[$v]." (". $cp_vil[$v] .")"); ?></option>
<?php
}
?>
</select>
<?php
/* Un petit coup de balai */
mysql_free_result($rech_vil);
}
?>
</td>
</tr>
<tr>
<td>
<?php
//mysql_free_result($rech_dept);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($idv) && $idv != -1)
{
?>
Rue
</td>
<td>
<input type="text" name="rue" value="<?php if(isset($_POST['rue'])) echo($_POST['rue']); ?>"></input>
<?php
}
?>
</td>
</tr>
<tr>
<td colspan="2">
<!-- Message d'alerte pour le remplissage des champs -->
<div id="Attention">Attention tous les champs sont obligatoires</div>
</td>
</tr>
<tr>
<td>
<!-- 'type="image"' permet l'affichage du bouton "valider" -->
<!--<td colspan="2"><input type="image" name="valider" src="images_gabarit/Valider3.jpg"/></td>-->
<input type="button" value="Envoyer" name="envoyer" id="envoyer" onclick="this.form.action='contenu/Controle/C_inscription.php'; this.form.submit()" ></input>
</td>
</tr>
</table>
</form> |
Voici la page de code dont le bouton fait appel :
Code:
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
| <?php
include('../Requete/R_inscription.php');
$titre = $_POST['titre'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$jours = $_POST['jours'];
$mois = $_POST['mois'];
$annees = $_POST['annees'];
$mail = $_POST['mail'];
$motPasse = $_POST['motPasse'];
$ville = $_POST['ville'];
$rue = $_POST['rue'];
if($nom == "")
{
//echo "erreur";
?>
<script language="JavaScript">
alert('erreur');
history.back();
</script>
<!-- <a href="javascript:window.history.go(-1)">Retour</a>-->
<?php
}
else{
$dateNais = ($annees."-".$mois."-".$jours);
$dateInscrit = date("Y-m-d");
R_inscription::Enregistrer_client($ville, $titre, $nom, $prenom, $dateNais, $rue, $mail, $motPasse, $dateInscrit);
?>
<script language="JavaScript">
nom = "<?php echo $nom; ?>";
prenom = "<?php echo $prenom; ?>";
date_inscription = "<?php echo date("Y-m-d"); ?>";
document.location.href='../../Index.php?action=valider_inscription&nom='+nom+'&prenom='+prenom+'&date_inscription='+date_inscription;
</script>
<?php
}
?> |
Ce que je souhaiterais c'est que si un champ est vide(pour le moment j'essaye de le faire avec le champ "nom") alors cela m'affiche un message(boîte de dialogue) d'erreur voir pourquoi pas le champ en question et ensuite en cliquant sur "ok" de la boite de dialogue cela me retourne vers la page précédente en gardant les valeurs précédemment inséré.
Mes soucis :
1) Lorsque je revient en arrière je n'arrive pas à afficher les données précédemment remplit. Comment puis-je faire??
2) comment puis-je faire pour indiquer dans la boite de dialogue (alert) quel champ est vide??
Merci d'avance pour votre aide.