IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Retour en arrière en affichant les données de l'ancienne page


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut 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 : 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
    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&eacute;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 : 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
    <?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.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ?
    pourquoi soumettre le formulaire si les données ne sont pas correctes ...
    Autant faire les vérification en javascript et n'autoriser la soumission que si les données sont correctes ...

    Sinon c'est plus un souci php, si l'on considère que l'on se passe de js pour la verification.
    Deux possibilités:

    La page d'action est la même que la page du form et ce n'est que l'affichage qui diffère en fonction des tests sur saisie

    ou bien si le form pointe sur un autre page, il faut alors passer par des variables de session. (Passer les éléments en GET est moins subtile à mon gout )
    Personnellement j'utilise une variable de session que j'appelle $errmsg
    Dans la page de traitement je mets dans cette variables les messages d'erreurs (champs obligatoires ...)
    En fin de traitement si $errmsg n'est pas vide je retourne sur la page du form
    Et donc je teste sur la page du form si $errmsg est vide ou non ce qui me permets d'afficher les alertes nécessaires.
    Pour ce qui est des données saisies il suffit egalement de les mettre par exemple dans un array en session et ainsi on peut les réaffecter aux elements du form coté php
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Réponse à SpaceFrog
    Merci pour ta réponse aussi vite.

    pourquoi soumettre le formulaire si les données ne sont pas correctes ...
    Autant faire les vérification en javascript et n'autoriser la soumission que si les données sont correctes ...
    Qu'entend tu par là?? Tu veux dire : vérifier le remplissage de chaque champs au fur et à mesure où lorsque l'on clic sur le bouton 'Envoyer' on vérifie les champs??

    Sinon c'est plus un souci php, si l'on considère que l'on se passe de js pour la verification.
    Deux possibilités:

    La page d'action est la même que la page du form et ce n'est que l'affichage qui diffère en fonction des tests sur saisie

    ou bien si le form pointe sur un autre page, il faut alors passer par des variables de session. (Passer les éléments en GET est moins subtile à mon gout )
    Personnellement j'utilise une variable de session que j'appelle $errmsg
    Dans la page de traitement je mets dans cette variables les messages d'erreurs (champs obligatoires ...)
    En fin de traitement si $errmsg n'est pas vide je retourne sur la page du form
    Et donc je teste sur la page du form si $errmsg est vide ou non ce qui me permets d'afficher les alertes nécessaires.
    Pour ce qui est des données saisies il suffit egalement de les mettre par exemple dans un array en session et ainsi on peut les réaffecter aux elements du form coté php
    Personnellement pour rester dans le sens de ma façon de programmer le site, je préfère la deuxième solution mais j'ai un peu de mal à voir comment faire, pourrais tu (si cela t'est possible) me montrer un exemple de code (en général je comprend mieux avec un exemple qu'avec du texte).

    Merci d'avance!!

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    vérifier le remplissage de chaque champs au fur et à mesure où lorsque l'on clic sur le bouton 'Envoyer' on vérifie les champs??
    Oui, regardes la faq pour voir comment faire.
    Citation Envoyé par loic20h28 Voir le message
    Personnellement pour rester dans le sens de ma façon de programmer le site, je préfère la deuxième solution mais j'ai un peu de mal à voir comment faire, pourrais tu (si cela t'est possible) me montrer un exemple de code (en général je comprend mieux avec un exemple qu'avec du texte).
    Merci d'avance!!
    Testes les données postées avec isset et empty.
    L'idéal c'est que tu faits les deux vérifications .

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    voir aussi la FAQ pour l'utrilisation de l'evènement onsubmit d'un formulaire et la possibilité de bloqiuer l'envoir sur verfication des saisies.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Par défaut
    Par soucis de sécurité il ne faudra surtout pas oublier de valider les données coté PHP

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    Bonsoir les gens,

    Tout d'abord merci pour votre aide.

    J'ai essayé d'avancer avec vos conseils... voici ce que cela me donne pour le moment :
    Code : 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
    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
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    <?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++;
            }
        }
    ?>
    <script type="text/javascript">
    	function verif(){ 
    		var inputList = document.forms['client'].elements;
    		var alertTxt = "";
    		for (unInput in inputList){
    		    if(unInput.type=="text" && unInput.value.length==0){
    				alertTxt += "Le champ " + unInput.name + " n'a pas été rempli \n";
    			}
    		}
    		//document.getElementById('mes').innerHTML=alertTxt;
    		//document.write(alertTxt);
    		monSPAN = document.getElementById('mes');
    		monSPAN.innerHTML = "aaa";
     
    	}
    </script>
     
    <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&eacute;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="return verif()" ></input>
    			</td>
    		</tr>
    		<tr>
    			<td> <span id="mes"></span>
    		</tr>
    	</table>
    </form>
    Mon problème c'est que si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monSPAN = document.getElementById('mes');
    		monSPAN.innerHTML = alertTxt;
    rien ne se passe mais si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monSPAN = document.getElementById('mes');
    		monSPAN.innerHTML = "aaaa";
    dés que je click sur le bouton, "aaaa" s'affiche à tout les coup.

    Comment puis-je faire??
    EDIT : Si je met un alert dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if(unInput.type=="text" && unInput.value.length==0){
    				alertTxt += "Le champ " + unInput.name + " n'a pas été rempli \n";
    			}
    rien ne s'affiche.


    Merci d'avance

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    Avec de la reflexion, j'ai trouvé une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript">
    	function verif(){ 
    		var alertTxt = "";
     
    		if(document.client.nom.value=="")
    			alertTxt = "Le champ " + document.client.nom.name + " n'a pas été rempli \n";
    		document.getElementById('mes').innerHTML=alertTxt;
     
    		if(alertTxt=="")
    			alert("a");
    	}
    </script>
    Cela fonctionne (pour le moment) mais je souhaiterais avoir votre avis sur la solution pour savoir si cela est correcte??

    Cordialement

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Oui la methode consiste à passer le string du message d'alert à une variable javascript puis le traiter dans une fonction javascript coté client.

    Attention ! Ne pas essayer de mettre une fonction javascript par innerHTML en runtime coté client .
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Réponse à SpaceFrog
    Merci pour ton avi....

    Je suis toujours dessus et je suis bloqué sur deux choses :
    1) J'essaye de vérifier si la liste déroulante correspondant au 'département' soit visible ou pas pour ensuite vérifier si la liste déroulante correspondant à la 'ville' et le champ texte 'rue' soit remplit correctement.
    Voici ce que j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(document.getElementById('departement').style.visibility=="visible"){
    			if(document.client.ville.value==-1)
    				alertTxt += "Ville <br/>";
     
    		}
    FireBug me dit l'erreur suivante :
    document.getElementById("departement") is null
    if(document.getElementById('departement').style.visibility=="visible"){
    Comment faire pour résoudre ce problème??

    2) Je souhaite également vérifier que certain champ(par exemple le champs de saisie correspondant au 'nom') ont aucun chiffre, voici le code que j'utilise pour le moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(document.client.nom.value=="") 
    			alertTxt += "Nom <br/>";
    		else if(verif_numeric(document.client.nom.value))
    			alertTxt += document.client.nom.name + " fr<br/>";
     
    function verif_numeric(variable)
    {
        var exp = new RegExp("^[0-9]+$","g");
        return exp.test(variable);
    }
    Le résultat est pas terrible c'est à dire :
    si aucun texte(ni chiffre) ou que du texte -> aucun souci.
    si que des chiffres -> aucun souci.
    s'il y a les 2 -> aucun message d'erreur s'affiche donc cela ne me va pas du tout.
    Comment puis-je faire pour régler ce problème s'il vous plais??

    Merci d'avance!!

  11. #11
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Dans le premier cas, est-ce que votre input a bien un id "departement" ?
    Dans le second cas, l'expression régulière précisée ne renverra true que si il n'y a que des chiffres:
    Je ne jongle pas bien avec les expressions régulières donc je vous laisse (ou d'autres) la retravailler.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher les données par PHP : la page charge indéfiniment
    Par smilly dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 01/04/2013, 22h01
  2. [VBA-E] afficher les données d'une datagrid dans des zones de textes
    Par fadwa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/05/2006, 13h51
  3. [Excel] Comment afficher les données d'un fichier Excel (PHP)
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/05/2006, 15h01
  4. Réponses: 6
    Dernier message: 06/04/2006, 20h52
  5. [MySQL] Une liste déroulante affichant les données d'une requête SHOW par ordre alphabétique
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/12/2005, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo