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 :

Cocher les cases d'un tableau HTML selon les résultats d'une requête [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Cocher les cases d'un tableau HTML selon les résultats d'une requête
    Bonjour,

    Je voudrais cocher les cases d'un tableau HTML selon les résultats d'une requête, sachant que la value de chaque case est différente.

    Pour le moment je ne boucle pas bien sur le tableau et je n'ai pas trouvé pourquoi : dans le tableau il y a bien une case cochée mais toutes celles qui devraient l'être.
    Pour cocher, je viens faire une comparaison de la value des cases à celle de ma table, si comparaison je coche.

    Voici le bout de code en question :

    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
    echo '<table>';
    	while($row = mssql_fetch_assoc($r11))
    	{
    		//On coche les cases du tableau en fonction du profil sélectionné
    		for ($i = 0; $i < $nb; $i++) 
    		{
    		if($tab22['id'] == $row['id_menu']) { $checked = ' checked="checked"'; } else { $checked = ''; }
    		}
    		echo '<tr>';
    			echo '<td>'.$row['theme'].'</td>';
    			echo '<td>'.$row['sous_menu'].'</td>';
    			echo '<td><input type="checkbox" name="choix[]" value="'.$row['id_menu'].'" '.$checked.' /></td>';
    		echo '</tr>';
    	}
    echo '</table>';

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    D'ou vient $tab22['id'] ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    D'ou vient $tab22['id'] ?
    D'une table. Tu veux voir la structure des tables ?

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Donc, qu'on soit d'accord, tu coches toutes les lignes qui ont la même valeur que $tab22['id'] (qui est fixe dans la boucle) ?

    Si c'est bien ça, et que tu n'obtiens pas le résultat voulu, controle ce que contiens id_menu pour chaque ligne puisqu'il ne vaut pas le $tab22['id'] attendu.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    tu coches toutes les lignes qui ont la même valeur que $tab22['id'] (qui est fixe dans la boucle) ?
    Oui, mais qu'entends-tu par "qui est fixe dans la boucle" ?

    J'ai contrôlé id_menu dans le source de la page, et je trouve bien les values identiques aux valeurs de $tab22['id'].
    Je pense que le problème vient de la boucle for qui s'arrête au 1er enregistrement trouvé, et donc ne coche qu'une seule case. Mais je n'ai encore trouvé la solution.

  6. #6
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    J'ai trouvé ma solution :

    au lieu de faire 2 requêtes, une pour alimenter le tableau HTML et une autre pour cocher les cases, je n'en fais qu'une en lui ajoutant un champ "chk" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
              A.id_menu
    	 ,A.theme
    	 ,A.sous_menu
    	 ,(select count(*) FROM droit_profil B WHERE B.id_profil='$profil' AND B.id_menu=A.id_menu) chk
    	 FROM menu A
    Si "chk" = 1 je coche sinon pas coché. Ca m'évite ce que je ne savait pas faire : comparer les id_menu.

    Dans la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($row['chk'] == 1) { $checked = ' checked'; } else { $checked = ''; }

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2009, 20h43
  2. Réponses: 4
    Dernier message: 29/02/2008, 17h14
  3. [DDE]envoi de mail automatique selon le résultat d'une requête
    Par celiaaa dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 10/04/2007, 19h10
  4. [HTML] Arrondir les bordures d’un tableau
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 11/01/2006, 08h41
  5. [MySQL] Récuperer les donner et les afficher ds un tableau html
    Par tyarak dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 31/10/2005, 23h03

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