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 :

Verifier si des checkbox sont cochées ou non [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut Verifier si des checkbox sont cochées ou non
    Bonjour,

    Je suis embeté avec mes checkbox qui s'affiche dans une boucle par le biais de deux requetes.

    Comment je peux savoir si une de mes checkbox est sélectionnée car je vois pas du tout comment faire le test de la checkbox cochée ou non dans mon cas.

    Merci par avance !!

    Cordialement,

    Emmanuel,

    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
    // Requete qui affiche les materiels qui ne sont pas empruntes	
     
    	$reqDispo = "SELECT MATERIEL.NUM_MAT, MATERIEL.DESC_MAT, TYPE.LIB_TYPE 
    				 FROM MATERIEL, TYPE 
    				 WHERE MATERIEL.DISPO_MAT = 1 
    				 AND MATERIEL.NUM_TYPE = TYPE.NUM_TYPE
    				 AND MATERIEL.NUM_MAT NOT IN ( 
    												SELECT MATERIEL.NUM_MAT
    												FROM PRET, EMPRUNT, MATERIEL 
    												WHERE PRET.NUM_PRET = EMPRUNT.NUM_PRET 
    												AND EMPRUNT.NUM_MAT = MATERIEL.NUM_MAT 
    												AND MATERIEL.DISPO_MAT = 1
    												AND PRET.DATEDEB_PRET BETWEEN '$datedeb_BDD' AND '$datefin_BDD'
    											  )
    				AND MATERIEL.NUM_MAT NOT IN ( 
    												SELECT MATERIEL.NUM_MAT
    												FROM PRET, EMPRUNT, MATERIEL 
    												WHERE PRET.NUM_PRET = EMPRUNT.NUM_PRET 
    												AND EMPRUNT.NUM_MAT = MATERIEL.NUM_MAT 
    												AND MATERIEL.DISPO_MAT = 1
    												AND PRET.DATEFIN_PRET BETWEEN '$datedeb_BDD' AND '$datefin_BDD'
    											  )
    				 ORDER BY TYPE.LIB_TYPE";	
     
    	 $reqTypes = "SELECT * FROM TYPE, MATERIEL WHERE TYPE.num_type = MATERIEL.num_type GROUP BY TYPE.num_type";
     
     
    	 ?>
     
    				Demande d'emprunt du <? echo $datedeb;?> au <? echo $datefin;?>	
    				<form id="reservation" name="reservation" method="post" action="demande_pret.php?send=1&datedeb=<? echo $datedeb;?>&datefin=<? echo $datefin;?>" >
    				  <p>Mat&eacute;riel(s) demand&eacute;(s) : </p>
    				  <p><? 
     
    	//////////////////////////////////////////////////////////////////
    	//                  DEBUT GESTION DES CHECKBOX                  //
    	//////////////////////////////////////////////////////////////////		
     
    $resDispo = mysql_query($reqDispo, $connexion) or die ('erreur sur '.$reqDispo.'<br/>'.mysql_error());
    $types_OK = array();
     
    while ($rowDispo = mysql_fetch_array($resDispo) )
    {
      $types_OK[] = $rowDispo['LIB_TYPE'];
    }
     
    $resTypes = mysql_query($reqTypes, $connexion) or die ('erreur sur '.$reqTypes.'<br/>'.mysql_error());
     
    while($rowT = mysql_fetch_array($resTypes))
    {
    	?>
    	<input type="checkbox" name="<?php echo $rowT["num_type"];?>" value="checked"
    	<?php
    	if(!in_array($rowT['lib_type'], $types_OK))
    	{
    		$mess_indispo = "Materiel indisponible pour ces dates";
    	?>
    		disabled="disabled"
    	<?php 
    	}
     
    	?>
    	/>
    	<?php
    	echo $rowT["lib_type"];
    	?> 
    	<p>
    		<?php 
    		echo $mess_indispo;
    		$mess_indispo = "";
    		?>		
    	</p>
    	<?php
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu ne nous as pas mis la partie du code ou tu traites le resultat du formulaire.

    Sinon, je construirais plutot mon formulaire comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="checkbox" name="type[]" value="<?php echo $rowT["num_type"];?>" />
    (merci Celira)
    Et tu recuperes apres les cases cochées dans le tableau $_POST['type'].

    Attention par contre une case non cochées ne revoit rien et donc n'est pas présente dans le $_POST.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu ne nous as pas mis la partie du code ou tu traites le resultat du formulaire.

    Sinon, je construirais plutot mon formulaire comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="checkbox" name="type[]" value="<?php echo $rowT["num_type"];?>" />
    (merci Celira)
    Et tu recuperes apres les cases cochées dans le tableau $_POST['type'].

    Attention par contre une case non cochées ne revoit rien et donc n'est pas présente dans le $_POST.
    Salut !

    Merci de ta réponse mais ce que je ne comprend pas c'est le type[].

    ça ne va pas si je met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="<?php echo $rowT["num_type"];?>" value="<?php echo $rowT["num_type"];?>"
    ?? et après je fais comment ma boucle de $_POST ? pour savoir si telle ou telle case est cochée ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Salut,

    Pour savoir si une checkbox est coché tu fais un if sur ton post, lorsque celle ci est coché le POST te renvoie "on".

  5. #5
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Sebastien14 Voir le message
    Salut,

    Pour savoir si une checkbox est coché tu fais un if sur ton post, lorsque celle ci est coché le POST te renvoie "on".

    Moi j'ai fais ça :

    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
    if(isset($_GET['send']))
    {
    	// Recup les données saisies
    	$datedeb = $_GET['datedeb'];
    	$datefin = $_GET['datefin'];
    	$motif = $_POST['motif'];
     
    $reqTypes = "SELECT * FROM TYPE, MATERIEL WHERE TYPE.num_type = MATERIEL.num_type GROUP BY TYPE.num_type";
    $resTypes = mysql_query($reqTypes, $connexion) or die ('erreur sur '.$reqTypes.'<br/>'.mysql_error());	
    while($rowT = mysql_fetch_array($resTypes))
    {
    	if ($_POST['$rowT[0]'] == $rowT[0])
    	{
    		echo "Case '".$rowT['lib_type']."' cochée";
    	}
     
    }
    Mais celà ne fonctionne pas

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Je comprend pas bien dans ton code, un coup il y a $rowT[0] et un autre $rowT['lib_type']. Avec un mysql_fetch_array il faut utiliser la seconde solution et avec un mysql_feth_row la première, mais la tu fais un mélange des deux j'ai l'impression

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/10/2014, 06h10
  2. Vérifier si un Checkbox est coché ou non
    Par albert55 dans le forum JavaFX
    Réponses: 1
    Dernier message: 07/07/2013, 21h13
  3. verifier si un checkbox est coché
    Par kawther dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/04/2007, 17h30
  4. verifier si checkbox sont cochées
    Par metatron dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/09/2006, 15h40
  5. verifier si des user sont connéctés à une base Paradox
    Par JCDC dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/11/2005, 13h28

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