Récupérer les values des checkbox dans un fichier modifier ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer les values des checkbox dans un fichier modifier ?

par Cyrano » 25 févr. 2006, 11:53

C'est bien ce qu'il me semblait et charabia l'a souligné : le champ jour_mairie_sql n'existe pas mais c'est bien jour_mairie tout court. Donc ta requête devra davantage ressembler à :
$req = mysql_query("SELECT jour_mairie, mairie, dde, ad_mairie, ad_dde, cp_mairie, cp_dde, tel_mairie, tel_dde, fax_mairie, fax_dde, site_web, idpatro, instructeur, heure_mairie, heure_dde ".
                   "FROM  mairies_info  ".
                   "WHERE id='$mairie_courant'"); ?>
Ensuite avant d'affiche le formulaire, il conviendrait de récupérer le résultat:
if($infos = mysql_fetch_assoc($req))
{
    //... ton formulaire
}
//...
?>
Et dans ton formulaire :
<input type="checkbox" name="jour_mairie[]"<?php if($infos['jour_mairie'] == "Tous les jours"){echo" CHECKED";}?>> 
Un détail : évite le SELECT * : il est toujours préférable de ne récupérer que les champs dont tu as besoin au lieu de tout récupérer en vrac, tu gagneras en performances et coté pratique, c'est plus facile pour coder.

par Kimble » 25 févr. 2006, 11:41

Fais donc voir la structure de ta table, j'ai un gros doute sur le premier champ de ta requête.

Code : Tout sélectionner

-- phpMyAdmin SQL Dump -- version 2.6.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Samedi 25 Février 2006 à 10:14 -- Version du serveur: 4.1.9 -- Version de PHP: 4.3.10 -- -- Base de données: `toulouse` -- -- -------------------------------------------------------- -- -- Structure de la table `mairies_info` -- CREATE TABLE `mairies_info` ( `id` int(11) NOT NULL auto_increment, `dde` varchar(30) default NULL, `mairie` varchar(30) NOT NULL default '', `ad_dde` varchar(255) default NULL, `cp_dde` varchar(20) default NULL, `tel_dde` varchar(20) default NULL, `fax_dde` varchar(20) default NULL, `ad_mairie` varchar(255) default NULL, `cp_mairie` varchar(20) default NULL, `tel_mairie` varchar(20) default NULL, `fax_mairie` varchar(20) default NULL, `site_web` varchar(255) default NULL, `idpatro` int(11) default NULL, `instructeur` varchar(30) default NULL, `jour_mairie` varchar(255) default NULL, `jour_dde` varchar(255) default NULL, `heure_mairie` text, `heure_dde` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Infos sur les mairies' AUTO_INCREMENT=4 ;
C'est mieux comme ça ?
<?
//La requéte
			$req = "select * from  mairies_info where id='$mairie_courant'";
			$req1 = mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
			$result=mysql_fetch_array($req1);
?>

par Cyrano » 24 févr. 2006, 20:48

Fais donc voir la structure de ta table, j'ai un gros doute sur le premier champ de ta requête.

par Kimble » 24 févr. 2006, 18:01

Et merci à tous ceux qui on pris le temps de se pencher sur mon probléme... :)

par Kimble » 24 févr. 2006, 17:55

je n'y avait même pas pensé ! j'étais toujours dans le PHP...merci.

par [BQS]Jayce » 24 févr. 2006, 17:53

met les dans un tableau ;)
tu veut dire <table></table> ?
oui tout à fait ;)

par Kimble » 24 févr. 2006, 17:52

met les dans un tableau ;)
tu veut dire <table></table> ?

par [BQS]Jayce » 24 févr. 2006, 17:50

met les dans un tableau ;)

par Kimble » 24 févr. 2006, 17:47

Voili...voilou. les checkbox qui ont une valeur dans le champ sont cochées ! et les autres décochées.
<?php
// il faut d'abord déclarer un tableau comprenant les valeurs jours pour les checkbox
			$array_jours[] = "Tous les jours";
			$array_jours[] = "Lundi";
			$array_jours[] = "Mardi";
			$array_jours[] = "Mercredi";
			$array_jours[] = "Jeudi";
			$array_jours[] = "Vendredi";
			$array_jours[] = "Samedi";
//La requéte
			$req=mysql_query("select * from  mairies_info where id='$mairie_courant'");
			$result=mysql_fetch_array($req);
//le formulaire?>
<form>
<?php
// on boucle sur le tableau $array_jours (checkbox)
			foreach ($array_jours as $a => $jour_semaine) {
// on compare la variable result['jour_mairie'] à la variable jour_semaine
    		if (ereg($jour_semaine,$result['jour_mairie'])) {
// si elle est présente dans la variable alors on déclare la variable tableau checked_jour pour cocher le checkbox
       		 $checked_jour[$jour_semaine] = "CHECKED";
    		}
			else {
        $checked_jour[$jour_semaine] = "";
    }
// on construit la liste des checkbox
?>
			<br />
			<br />  
			&nbsp;&nbsp;<strong>
			<? echo $jour_semaine; ?> : <input type="checkbox" name="jour_mairie[]" value="<? echo $jour_semaine; ?>" <? echo $checked_jour[$jour_semaine]; ?>>
 
			<?
}?></strong>
</form>
Par contre les checkbox s'affichent les unes dessous des autres ! :oops:
Il y a t-il un moyen de les afficher côte à côte ? comme ceci ?
Tous les jours : Lundi : Mardi : Mercredi : Jeudi : Vendredi : Samedi :

par charabia » 18 févr. 2006, 21:36

$req=mysql_query("select '.jour_mairie_sql.', mairie, dde, ad_mairie, ad_dde, cp_mairie, cp_dde, tel_mairie, tel_dde, fax_mairie, fax_dde, site_web, idpatro, instructeur, heure_mairie, heure_dde from  mairies_info  where id='$mairie_courant'"); ?>
A quoi correspond ton select '.jour_mairie_sql.' ?

par Kimble » 18 févr. 2006, 18:06

Je reviens avec mon probléme, j'ai fait ceci mais ça ne marche pas :
<?php $jour_mairie = isset($_POST['jour_mairie']) ? $_POST['jour_mairie'] :NULL; 

$jour_mairie_sql = (isset($jour_mairie)) ? explode(', ', $jour_mairie) : ""; 

$req=mysql_query("select '.jour_mairie_sql.', mairie, dde, ad_mairie, ad_dde, cp_mairie, cp_dde, tel_mairie, tel_dde, fax_mairie, fax_dde, site_web, idpatro, instructeur, heure_mairie, heure_dde from  mairies_info  where id='$mairie_courant'"); ?>

<form>
<strong>&nbsp;&nbsp;<u>Jours d'ouverture de la mairie :</u>&nbsp;&nbsp; ( <font color="red">Cochez les jours correspondants</font> )</strong> 
         <br /> 
         <br />  
&nbsp;&nbsp;<strong>Tous les jours : 
<input type="checkbox" name="jour_mairie[]"<?php if($jour_mairie_sql == "Tous les jours"){echo" CHECKED";}?>> 
         <br />                      
&nbsp;&nbsp;Lundi : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "Lundi"){echo" CHECKED";}?>> 
Mardi : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "Mardi"){echo" CHECKED";}?>> 
Mercredi : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "Mercredi"){echo" CHECKED";}?>> 
Jeudi : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "Jeudi"){echo" CHECKED";}?>> 
Vendredi : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "Vendredi"){echo" CHECKED";}?>> 
Samedi : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "Samedi"){echo" CHECKED";}?>>&nbsp;&nbsp; 
         <br /> 
&nbsp;&nbsp;Le matin : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "le matin"){echo" CHECKED";}?>> 
&nbsp;&nbsp;L'aprés-midi : 
<INPUT type="checkbox" name="jour_mairie[]" <?php if($jour_mairie_sql == "l\'aprés-midi"){echo" CHECKED";}?>> 
         </strong>
</form>
Qu'est ce qu'il ce passe ?
:?: :?:

par Kimble » 16 févr. 2006, 19:44

Mon fichier modifier_mairie.php
<?php 
form_modif_mairie("index.php?liste=modifier_mairie&formulaire_m=mairies_info","patros_m",$mairie_courant);?>
Qui appelle le formulaire

<?php 
             function form_modif_mairie($action,$select1,$mairie_courant="")
			{
            $jour_mairie = isset($_POST['jour_mairie']) ? $_POST['jour_mairie'] :NULL;     
            $casecochee = (isset($jour_mairie)) ? explode(', ', $jour_mairie) : ""; 
            $checked=(isset($_POST['checked'])) ? $_POST['checked'] : "";                              
            $checked="";             
            $req=mysql_query("select * from  mairies_info  where id='$mairie_courant'");
            $result=mysql_fetch_array($req);
?>
            <td><strong><font color="red">Mairie de :</font></strong></td><td><input disabled name="mairie" tabindex="1" type="text" id="mairie" value="<? echo $result['mairie'] ?>"/></td>
<br />
<br />
<strong>&nbsp;&nbsp;<u>Jours d'ouverture de la mairie :</u>&nbsp;&nbsp; ( <font color="red">Cochez les jours correspondants</font> )</strong> 
             
             <input type="checkbox" name="casecochee[]" value="Tous les jours" <?PHP if (is_array($casecochee)) { if (in_array("Tous les jours",$casecochee)) echo "checked=\"checked\""; } ?> />
Je ne trouve pas pourquoi cette pt1 de checkbox n'est pas cochée alors qu'il y a l'info dans la BD ! En plus, j'ai trop de boulot en ce moment pour pouvoir m'y pencher sérieusement, alors je répond de façon épisodique...désolé.

par - HXSS - » 15 févr. 2006, 15:10

c'est le code complet ou juste une partie ? jvois pas ta requête sql pour reprendre les valeurs des case cochées

par Kimble » 15 févr. 2006, 14:58

Un petit UP ! on ne sait jamais si quelqu'un passe par là... :)

par Kimble » 14 févr. 2006, 18:02

J'ai regardé ton code et j'ai fait ceci :
<?php
			
			$jour_mairie = isset($_POST['jour_mairie']) ? $_POST['jour_mairie'] :NULL;	
			$casecochee = (isset($jour_mairie)) ? explode(', ', $jour_mairie) : "";
			$checked=(isset($_POST['checked'])) ? $_POST['checked'] : "";			 			    
   		$checked="";			
			?>
			<strong>&nbsp;&nbsp;<u>Jours d'ouverture de la mairie :</u>&nbsp;&nbsp; ( <font color="red">Cochez les jours correspondants</font> )</strong>
			<br />
			<br /> 
			 <input type="checkbox" name="casecochee[]" value="Tous les jours" <?PHP if (is_array($casecochee)) { if (in_array("Tous les jours",$casecochee)) echo "checked=\"checked\""; } ?> />
La case n'est toujours pas cochée...démoralisé je suis ! :(