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

Langage PHP Discussion :

[Tableaux] affichage d'un tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut [Tableaux] affichage d'un tableau
    Bonjour,

    dans ce code : toutes les checkbox sont cochées lorsque j'affiche ma page. Comment pourrai-je faire à l'aide d'un tableau pour que seules s'affichent les checkbox cochées?
    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
    <?php
    	$sql = "select * from langue";
    	$req = mysql_query($sql);
    	echo "<div class='ligne'>";
    	while($donnee=mysql_fetch_array($req)){
    		$id= $donnee['ID'];
    		$nom= $donnee['NOM'];
    		echo "<label for='".$donnee['NOM']."'>".$donnee['NOM']."</label>";
    		echo "<input type=\"checkbox\" id= '".$donnee['NOM']."' name='".$donnee['NOM']."' " ;
    		if(in_array($donnee['NOM'],$donnee)) {
    			echo "checked='checked'"; 
    		}	
    		echo " />";
    	}
     
    	echo "</div>";
    ?>

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    'lut,

    Tu veux vérifier quoi avec if(in_array($donnee['NOM'],$donnee)) ? $donnee est un tableau associatif qui ne contient que les données d'une ligne à chaque fois. in_array($donnee['NOM'], $donnee) renvoie forcément TRUE vu qu'avec ce test tu demandes de vérifier si le tableau contient bien la donnée que tu viens d'en extraire. C'est une sorte de lapalissade informatique.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut
    Avec cela je souhaiterais afficher le tableau que je suis censé créer mais je ne sais pas comment faire cela.
    En gros, ce que je souhaiterais faire avec ce code :
    je clique sur des checkbox. Ensuite je quitte la page et reviens par la suite.
    Les données sont conservées en session et seules les checkbox que je coché le reste, les autres non . Mais comment coder cela?

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Eh bien en utilisant une variable de session qui contient la liste des boîtes cochées. Mais pour cela, il faut que tu ais posté ton formulaire d'une manière ou d'une autre. Je ne suis pas sûr que le post du formulaire fasse partie du workflow que tu souhaites. Me trompe-je ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut
    Si, en fait ce que je désirerai c'est connaître le code à mettre en oeuvre pour faire apparaitre ce formulaire....

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Si t'es capable d'écrire une variable de session, tu devrais pouvoir lire une variable de session...

    T'as déjà fait tout le boulot : si tu stockes les noms des cases cochées dans un tableau que tu places en session dans une variable appelée "cases_cochees", tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cases_cochees = $_SESSION["cases_cochees"];
    ...
    		if(in_array($donnee['NOM'], $cases_cochees)) {
    			echo "checked='checked'"; 
    		}
    ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut
    C'est vraiment sympa d'essayer de m'aider mais lorsque j'applique les modifications
    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
    <?php
    	$sql = "select * from langue";
    	$req = mysql_query($sql);
    	echo "<div class='ligne'>";
    	while($donnee=mysql_fetch_array($req)){
    		$donnee = $_SESSION["NOM"]; 
     
    		echo "<label for='".$donnee['NOM']."'>".$donnee['NOM']."</label>";
    		echo "<input type=\"checkbox\" id= '".$donnee['NOM']."' name='".$donnee['NOM']."' " ;
    		if(in_array($donnee['NOM'],$donnee)) {
    			echo "checked='checked'"; 
    		}	
    		echo " />";
    	}
     
    	echo "</div>";
    ?>
    J'ai ce message qui apparait Warning: in_array() [function.in-array]: Wrong datatype for second argument

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par _Mac_
    $cases_cochees = $_SESSION["cases_cochees"];
    ...
    if(in_array($donnee['NOM'], $cases_cochees)) {
    echo "checked='checked'";
    }
    ...

    Citation Envoyé par lynxxx

    $donnee = $_SESSION["NOM"];


    if(in_array($donnee['NOM'],$donnee)) {
    echo "checked='checked'";

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    if(in_array($donnee['NOM'],$donnee))

    Tu regarde si une partie de ta variable $donnee est dans $donnee??? Je suppose que l'erreur ne vient pas de là mais quand même ça me parait bizare

  10. #10
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    while($donnee=mysql_fetch_array($req)){
    $donnee = $_SESSION["NOM"];

    fais gaffe aux noms des variables

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut
    Vous êtes sympa les gars, je me sents aidé c'est super

    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
    <?php
    	$sql = "select * from langue";
    	$req = mysql_query($sql);
    	echo "<div class='ligne'>";
    	while($donnee=mysql_fetch_array($req)){
    		$NOM = $_SESSION["NOM"]; 
     
    		echo "<label for='".$donnee['NOM']."'>".$donnee['NOM']."</label>";
    		echo "<input type=\"checkbox\" id= '".$donnee['NOM']."' name='".$donnee['NOM']."' " ;
    		if(in_array($donnee['NOM'],$donnee)) {
    			echo "checked='checked'"; 
    		}	
    		echo " />";
    	}
     
    	echo "</div>";
    ?>
    Toujours les checkbox affichées COCHEES ...

  12. #12
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Il insiste...

    Qu'est-ce qu'on fait dans ce cas-là ?

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut
    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
    <?php
    	$sql = "select * from langue";
    	$req = mysql_query($sql);
    	echo "<div class='ligne'>";
    	foreach ($langParlee as $NOM)
    		{
    	($NOM = $_SESSION['NOM']);
    	}
    	while($donnee=mysql_fetch_array($req)){
    		echo "<label for='".$donnee['NOM']."'>".$donnee['NOM']."</label>";
    		echo "<input type=\"checkbox\" id= '".$donnee['NOM']."' name='langParlee[]' " ;
    		if($_SESSION["donnee"]!= null && in_array($donnee['NOM'],$_SESSION["donnee"])) {
    			echo "checked='checked'"; 
    		}	
     
    		echo " />";
    	}
    	echo "</div>";
    ?>
    Voici en j'en suis ....
    Les coups de fouet maintenant .... si je devais prendre un coup chaque fois que je fesais une erreur php ...

  14. #14
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    tu te compliques la vie là, regardes ceci :

    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
     
    <?php
     
    	$sql = "select * from langue";
    	$req = mysql_query($sql);
     
    	echo "<div class='ligne'>";
     
    	while($donnee=mysql_fetch_array($req)){
     
    	    if($_SESSION["donnee"]!= null && in_array($donnee['NOM'],$_SESSION["donnee"]))
    	        $chk = "checked='checked' ";
    	    else 
    	        $chk = "";
     
    	    echo "<label for='".$donnee['NOM']."'>".$donnee['NOM']."</label>";
    	    echo "<input type=\"checkbox\" id= '".$donnee['NOM']."' name='langParlee[]' ".$chk."/>";
     
        }
     
    	echo "</div>";
    ?>

  15. #15
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par lynxxx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($langParlee as $NOM)
    {
    	($NOM = $_SESSION['NOM']);
    }
    C'est quoi ce truc ???? Tu comprends ce que tu fais ????

    Elle te sert à quoi la variable $NOM ? Et $_SESSION["donnee"] et $_SESSION["NOM"] contiennent quoi ?

    Je ne comprends pas ce que tu cherches à faire dans ta boucle : j'ai l'impression que tu cherches à mettre un truc en session en même temps que gérer l'affichage, c'est ça ? Si c'est ça, remplace ton foreach ($langParlee... qui fait on sait pas quoi par tout simplement $_SESSION['NOM'] = $langParlee. Ca, ca dit "stocke dans la variable de session 'NOM' la variable $langParlee". Pour la suite, vu que je ne sais pas à quoi sert $_SESSION["donnee"], je dirais de remplacer $_SESSION["donnee"] par $_SESSION['NOM'].

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut
    Bonjour,
    le code de ska_root à l'air correct hormis le fait que les sessions ne s'affichent pas et que j'obtiens ce message d'erreur :

    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

    Une bonne journée à vous

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 67
    Points : 23
    Points
    23
    Par défaut
    VOILA !!!! J'ai enfin la réponse
    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
    <?php
     
    	$sql = "select * from langue";
    	$req = mysql_query($sql);
     
    	echo "<div class='ligne'>";
     
    	while($donnee=mysql_fetch_array($req)){
     
    	    if($_SESSION["donnee"]!= null && in_array($donnee['NOM'],$_SESSION["donnee"]))
    	        $chk = "checked='checked' ";
    	    else 
    	        $chk = "";
     
    	    echo "<label for='".$donnee['NOM']."'>".$donnee['NOM']."</label>";
    	    echo "<input type=\"checkbox\" id= '".$donnee['NOM']."' value= '".$donnee['NOM']."' name='langParlee[]' ".$chk."/>";
     
        }
    Je vous remercie de m'avoir aidé !! Un ENORME merci particulièrement à _Mac_ et ska_root

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/02/2007, 13h42
  2. [Tableaux] Affichage d'un tableau récursif
    Par R'SKaP dans le forum Langage
    Réponses: 3
    Dernier message: 06/02/2007, 14h48
  3. [Tableaux] affichage d'un tableau
    Par patbeautifulday1 dans le forum Langage
    Réponses: 4
    Dernier message: 23/05/2006, 15h40
  4. Réponses: 3
    Dernier message: 24/02/2006, 10h22
  5. [Tableaux] Affichage d'un tableau multi-dimensionel
    Par rdams dans le forum Langage
    Réponses: 5
    Dernier message: 03/01/2006, 14h17

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