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

PHP & Base de données Discussion :

Problème avec checkbox - cases cochées par défaut avec formulaire


Sujet :

PHP & Base de données

  1. #61
    Invité
    Invité(e)
    Par défaut
    As-tu fais ca pour vérifier ce qu'il contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($aDemande);
    echo '</pre>';
    Peux-tu afficher le résultat ?
    (c'est pénible de te le demander à chaque fois ...)

    ps: arrête de cliquer sur le bouton "Citer" : inutile de copier à chaque fois tout mon message précédent ...
    Clique sur le bouton "Répondre", ok ?

  2. #62
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 93
    Points : 34
    Points
    34
    Par défaut
    Si je coche la première case de la checkbox "demande" il m'affiche le résultat suivant :

    Array
    (
    [0] => 1
    )

    Si je coche toutes les cases voici le résultat

    [0] => 1
    [1] => 3
    [2] => 2

    Remarque : l'ordre dans lequel sont donnés les id étant rangé en fonction des n_demande et non en fonction des id_demande (juste un petit détail)

    etc pour les résultats...

  3. #63
    Invité
    Invité(e)
    Par défaut
    Donc ... ? c'est bon, non ?

    a++ (je sors ce soir )

  4. #64
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 93
    Points : 34
    Points
    34
    Par défaut
    En fait ça marche si j'efface toutes les données de la bdd et que je coche une case. Mais il y a des incohérences si j'en coche deux, au renvoi du formulaire il va cocher celle qui n'a pas été coché. Et si je renvoie une deuxième fois les données (même si je coche qu'une case) il va en cocher une autre sans comprendre pourquoi. Je pense que le problème vient de l'ordre des id.

    J'ai bien laissé tel quel les order by. Je n'ai absolument rien changé mais le problème persiste...

    Ma foi je te dérange pas plus et bonne soirée !

  5. #65
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 93
    Points : 34
    Points
    34
    Par défaut
    Voilà les deux fichiers ! Encore merci. Ça marche nickel maintenant

    formulaire.php

    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
     
    <?php include ('traitement.php'); ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     
    <title>formulaire</title>
    </head>
    <body>
     
    <form method="post" action="formulaire.php">	
     
    	<fieldset style="margin:25px">
    	<legend><b>Vos coordonn&eacute;es</b></legend>
    	<table>
    		<tr>
    			<td width="300"><label for="nom">Nom : <i>[Mot de plus de deux lettres]</i></label></td>
    			<td><input type="text" name="nom" value ="<?php if(!empty($nom)&&(VerifierNom($nom)===true)){echo htmlentities($nom, ENT_QUOTES);}?>"/>
    			<?php if (!empty($nom)&&(VerifierNom($nom)===false)){echo 'champ non valide';} 
    			if(empty($nom)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="prenom">Pr&eacute;nom : <i>[Mot de plus de deux lettres]</i></label></td>
    			<td><input type="text" name="prenom" value ="<?php if(!empty($prenom)&&(VerifierPrenom($prenom)===true)){echo htmlentities($prenom, ENT_QUOTES);}?>"/>
    			<?php if(!empty($prenom)&&(VerifierPrenom($prenom)===false)){echo 'champ non valide';} 
    			if(empty($prenom)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="adresse">Adresse : <i>[Phrase de plus de deux lettres]</i></label></td>
    			<td><input type="text" name="adresse" value ="<?php if(!empty($adresse)&&(VerifierAdresse($adresse)===true)){echo htmlentities($adresse, ENT_QUOTES);}?>"/>
    			<?php if(!empty($adresse)&&(VerifierAdresse($adresse)===false)){echo 'champ non valide';} 
    			if(empty($adresse)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="code_postal">Code postal : <i>[Numéro à cinq chiffres]</i></label></td>
    			<td><input type="text" name="code_postal" value ="<?php if(!empty($code_postal)&&(VerifierCodePostal($code_postal)===true)){echo htmlentities($code_postal, ENT_QUOTES);}?>"/>
    			<?php if(!empty($code_postal)&&(VerifierCodePostal($code_postal)===false)){echo 'champ non valide';} 
    			if(empty($code_postal)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="ville">Ville : <i>[Mot de plus de deux lettres]</i></label></td>
    			<td><input type="text" name="ville" value ="<?php if(!empty($ville)&&(VerifierVille($ville)===true)){echo htmlentities($ville, ENT_QUOTES);}?>"/>
    			<?php if(!empty($ville)&&(VerifierVille($ville)===false)){echo 'champ non valide';}
    			if(empty($ville)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="telephone">T&eacute;l&eacute;phone : <i>[Numéro à dix chiffres]</i></label></td>
    			<td><input type="text" name="telephone" value ="<?php if(!empty($telephone)&&(VerifierTelephone($telephone)===true)){echo htmlentities($telephone, ENT_QUOTES);}?>"/>
    			<?php if(!empty($telephone)&&(VerifierTelephone($telephone)===false)){echo 'champ non valide';} 
    			if(empty($telephone)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="fax">Fax : <i>[Numéro à dix chiffres]</i></label></td>
    			<td><input type="text" name="fax" value ="<?php if(!empty($fax)&&(VerifierFax($fax)===true)){echo htmlentities($fax, ENT_QUOTES);}?>"/>
    			<?php if(!empty($fax)&&(VerifierFax($fax)===false)){echo 'champ non valide';} 
    			if(empty($fax)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="email">Email : <i>[Email sous format standard]</i></label></td>
    			<td><input type="text" name="email" value ="<?php if(!empty($email)&&(VerifierEmail($email)===true)){echo htmlentities($email, ENT_QUOTES);}?>"/>
    			<?php if(!empty($email)&&(VerifierEmail($email)===false)){echo 'champ non valide';} 
    			if(empty($email)&&(isset($_POST['valider']))) echo "champ vide"; else {echo " ";}?></td>
    		</tr>
     
    	</table>
    	</fieldset>
     
    	<fieldset style="margin:25px">
    	<legend><b>Vos informations</b></legend>
    	<table>
     
    		<tr>
    			<td width="250"><label for="client">Vous êtes client de l'entreprise ?</label></td>
    			<td>
    			<input type="radio" name="client" id="client_oui" value="1" <?php if ($client=='1') {echo 'checked="checked"';}?>/> <label for="client_oui">Oui</label>
    			<input type="radio" name="client" id="client_non" value="0" <?php if ($client=='0') {echo 'checked="checked"';}?>/> <label for="client_non">Non</label>
    			<?php if (($client!='0')&&($client!='1')&&(isset($_POST['valider']))){echo" => champ vide";}?>
    			</td>
    		</tr>
     
    		<tr>
    			<td width="50"><label for="site[]">Comment connaissez vous le site ?</label></td>
    			<td><?php	
     
    		// ----------------------------------------
    		// affichage des checkbox "SITE"
    		// ----------------------------------------
    		// les checkbox SITE de l'utilisateur
    		$user_site_SQL 		= 	"SELECT site.id FROM site
    								INNER JOIN siteformulaire
    								ON site.id = siteformulaire.id_site
    								INNER JOIN formulaire
    								ON formulaire.id = siteformulaire.id_formulaire
    								WHERE siteformulaire.id_formulaire = '".$id_formulaire."'
    								ORDER BY n_site";
     
    		$user_site_resu 	= 	mysql_query($user_site_SQL);
    		$user_site_nbre 	=	mysql_num_rows($user_site_resu);
     
    		// on crée un array $user_site_array des id_site de l'utilisteur
    		if($user_site_resu && $user_site_nbre>0){
    			$i = 0;
    			while ($user_site_row = mysql_fetch_array($user_site_resu)) {
    				$user_site_array[$i] = $user_site_row['id'];
    				$i++;
    			}
    		}
     
    		// ----------------------------------------
    		// requete : TOUTES les cases sites
    		$all_site_SQL	= "SELECT id, n_site FROM site ORDER BY n_site;" ;
    		$all_site_resu	= mysql_query($all_site_SQL);
    		$all_site_nbre 	= mysql_num_rows($all_site_resu);
     
    		// ----------------------------------------
    		while ($all_site_row = mysql_fetch_array($all_site_resu)) {
    			// la checkbox est cochée ? (si l'id est dans l'array des id_site de l'utilisteur : on coche)
    			$is_site_checked = ($user_site_nbre>0 && in_array($all_site_row['id'], $user_site_array))? ' checked="checked"' : '';	
    			?>
    				<input type="checkbox" name="site[]" value="<?php echo $all_site_row['id'];?>"<?php echo $is_site_checked;?>/>&nbsp;
    				<label><?php echo $all_site_row['n_site']; ?></label>
    		<?php } ?>
     
    			</td>
    		</tr>
     
    		<tr>
    			<td width="50"><label for="demande[]">Quelles sont vos demandes de site ?</label></td>
    			<td><?php	
     
    		// ----------------------------------------
    		// affichage des checkbox "DEMANDE"
    		// ----------------------------------------
    		// les checkbox DEMANDES de l'utilisateur
    		$user_demande_SQL 	= 	"SELECT demande.id FROM demande
    								INNER JOIN demandeformulaire
    								ON demande.id = demandeformulaire.id_demande
    								INNER JOIN formulaire
    								ON formulaire.id = demandeformulaire.id_formulaire
    								WHERE demandeformulaire.id_formulaire = '".$id_formulaire."'
    								ORDER BY demande.id";
     
    		$user_demande_resu 	=	mysql_query($user_demande_SQL);
    		$user_demande_nbre 	= 	mysql_num_rows($user_demande_resu);
     
    		// on crée un array $user_site_array des id_site de l'utilisteur
    		if($user_demande_resu && $user_demande_nbre>0){
    			$j = 0;
    			while ($user_demande_row = mysql_fetch_array($user_demande_resu)) {
    				$user_demande_array[$j] = $user_demande_row['id'];
    				$j++;
    			}
    		}
    		// ----------------------------------------
    		// requete : TOUTES les cases demandes
    		$all_demande_SQL	= "SELECT demande.id, demande.n_demande FROM demande ORDER BY demande.id;" ;
    		$all_demande_resu	= mysql_query($all_demande_SQL);
    		$all_demande_nbre 	= mysql_num_rows($all_demande_resu);
     
    		// ----------------------------------------
    		while ($all_demande_row = mysql_fetch_array($all_demande_resu)) {
    			// la checkbox est cochée ? (si l'id est dans l'array des id_demande de l'utilisteur : on coche)
    			$is_demande_checked = ($user_demande_nbre>0 && in_array($all_demande_row['id'], $user_demande_array))? ' checked="checked"' : '';	
    			?>
    				<input type="checkbox" name="demande[]" value="<?php echo $all_demande_row['id'];?>"<?php echo $is_demande_checked;?>/>&nbsp;
    				<label><?php echo $all_demande_row['n_demande']; ?></label>
    		<?php } ?>
     
    			</td>
    		</tr>
     
    	</table>
    	</fieldset>
     
    	<fieldset style="margin:25px">
    	<legend><b>Vos options</b></legend>
    	<table>
     
    		<tr>
    			<td width="250"><label for="devis">Demande de devis :</label></td>
    			<td>
    			<input type="radio" name="devis" id="devis_oui" value="1" <?php if ($devis=='1') {echo 'checked="checked"';}?>/> <label for="devis_oui">Oui</label>
    			<input type="radio" name="devis" id="devis_non" value="0" <?php if ($devis=='0') {echo 'checked="checked"';}?>/> <label for="devis_non">Non</label>
    			<?php if (($devis!='0')&&($devis!='1')&&(isset($_POST['valider']))){echo" => champ vide";}?>
    			</td>
    		</tr>
     
    		<tr>
    			<td width="250"><label for="contact">Demande de contact :</label></td>
    			<td>
    			<input type="radio" name="contact" id="contact_oui" value="1" <?php if ($contact=='1') {echo 'checked="checked"';}?>/> <label for="contact_oui">Oui</label>
    			<input type="radio" name="contact" id="contact_non" value="0" <?php if ($contact=='0') {echo 'checked="checked"';}?>/> <label for="contact_non">Non</label>
    			<?php if (($contact!='0')&&($contact!='1')&&(isset($_POST['valider']))){echo" => champ vide";}?>
    			</td>
    		</tr>
     
    	</table>
    	</fieldset>
     
    	<fieldset style="margin:25px">
    	<legend><b>Op&eacute;rations</b></legend>
    	<table>
    		<tr>
    			<td width="250"><label for="valider"></label></td>
    			<td><input type="submit" value="Valider" name="valider"/></td>
    			<td><input type="reset" value="Effacer"></td>
    		</tr>
    	</table>
    	</fieldset>
     
    	<?php
     
    	//affichage des messages d'erreur suite à la saisie du formulaire
     
    		if(isset($MsgEchecNPE)&&($etat='attente')){echo $MsgEchecNPE;}
    		if(isset($MsgEchecNE)&&($etat='attente')){echo $MsgEchecNE;}
    		if(isset($MsgEchecE)&&($etat='attente')){echo $MsgEchecE;}
    		if(($etat!='envoi') &&(isset($_POST['valider']))){echo "Veuillez ressaisir les données manquantes ou non valides";} 
     
    	?>
     
    </form>
     
    </body>
    </html>
    traitement.php

    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
     
    <?php
     
    //----------------------------------------------------------------------------
     
        	// Etat par défaut du formulaire lorsqu'aucune saisie n'a été effectuée
    		$etat	=	 'affichage';
     
    //------------------------------------------------------
    // INITIALISATION / AFFECTATION DES VARIABLES
    //------------------------------------------------------
    // Déclaration des variables
     
    		$id 			= (isset($_POST['id']))? intval($_POST['id']) : '';
     
    		$nom 			= (isset($_POST['nom']))? $_POST['nom'] : '';
     
    		$prenom 		= (isset($_POST['prenom']))? $_POST['prenom'] : '';
     
    		$adresse 		= (isset($_POST['adresse']))? $_POST['adresse'] : '';
     
    		$code_postal 	= (isset($_POST['code_postal']))? $_POST['code_postal'] : '';
     
    		$ville 			= (isset($_POST['ville']))? $_POST['ville'] : '';
     
    		$telephone 		= (isset($_POST['telephone']))? $_POST['telephone'] : '';
     
    		$fax 			= (isset($_POST['fax']))? $_POST['fax'] : '';
     
    		$email 			= (isset($_POST['email']))? $_POST['email'] : '';
     
    		$client 		= (isset($_POST['client']))? $_POST['client'] : '';
     
    		$aSite 			= (isset($_POST['site']))? $_POST['site'] : '';
     
    		$aDemande 		= (isset($_POST['demande']))? $_POST['demande'] : '';
     
    		$devis 			= (isset($_POST['devis']))? $_POST['devis'] : '';
     
    		$contact 		= (isset($_POST['contact']))? $_POST['contact'] : '';
     
    //-----------------------------------------------------------
     
    		include ("fonctions.php");// fonctions de vérification des champs du formulaire
     
    //-----------------------------------------------------------
    // TRAITEMENT DU FORMULAIRE si transmis
    //-----------------------------------------------------------
     
    		// si : formulaire transmis
    		if(isset($_POST['valider'])){
     
    			if ((VerifierNom($nom) === true) && (VerifierPrenom($prenom) === true) && (VerifierAdresse($adresse) === true) && (VerifierCodePostal($code_postal) === true) && 
    			   (VerifierVille($ville) === true) && (VerifierTelephone($telephone) === true) && (VerifierFax($fax) === true) && (VerifierEmail($email) === true) && 
    			   ($client==='0' || $client==='1') && isset($aSite) && isset($aDemande) && ($devis==='0' || $devis==='1') && ($contact==='0' || $contact==='1')){
     
    				$etat='envoi';	// ok : envoi
    				}
    		}
    				// fin si : formulaire transmis
    				// ----------------------------------------
     
    				// si etat : envoi		
    				if($etat=='envoi'){ //requêtes pour insertion des données dans la bdd étant donné que toutes les données ont été validées
     
    					    $sql	 = "INSERT INTO formulaire(id, nom, prenom, adresse, code_postal, ville, telephone, fax, email, devis, contact) 
    				    				VALUES('','$nom','$prenom','$adresse','$code_postal','$ville','$telephone','$fax','$email', '$devis', '$contact')";
     
    					    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    						$id_formulaire = mysql_insert_id();// on récupère l'id_formulaire qui vient d'être généré
     
    				  	// table : siteformulaire
    					if(isset($aSite)){ // array $aSite
    						foreach($aSite as $id_site){
    				        	$sql = "INSERT INTO siteformulaire(id_formulaire, id_site) VALUES ('$id_formulaire','$id_site')";
    				    	    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    						}
    					}
     
    					// table : demandeformulaire
    					if(isset($aDemande)){ // array $aDemande
    						foreach($aDemande as $id_demande){
    							$sql = "INSERT INTO demandeformulaire(id_formulaire, id_demande) VALUES ('$id_formulaire','$id_demande')";
    					        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    						}
    					}
    				}
    				// fin si etat : envoi
    				// ----------------------------------------
     
    ?>

  6. #66
    Invité
    Invité(e)
    Par défaut
    ton acharnement a fini par payer !

Discussions similaires

  1. Problème d'encodage par défaut avec Eclipse/Pydev
    Par Tryph dans le forum Eclipse
    Réponses: 2
    Dernier message: 13/07/2014, 00h48
  2. Problème de test par défaut avec Maven
    Par Smix007 dans le forum Maven
    Réponses: 10
    Dernier message: 12/05/2012, 06h05
  3. Réponses: 1
    Dernier message: 27/01/2010, 13h00
  4. Bouton par défaut avec MessageDlg ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/04/2005, 20h28
  5. Réponses: 9
    Dernier message: 12/01/2005, 18h00

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