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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème d'affichage des valeurs de mes cases a cocher


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 123
    Par défaut Problème d'affichage des valeurs de mes cases a cocher
    Salutations,
    via ce code je récupère mes valeurs de case a cocher
    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
     
    <?php 	
    	require_once('php/connexion.php');
     
    	$sql = "select preference from conducteurs where n_conducteur = 17";
    	$resultat = mysql_query($sql) or die(mysql_error());
    	while($rows = mysql_fetch_assoc($resultat)){
    	$preference = explode(',', $rows['preference']);
    	}
    	if (in_array('1',$preference)) echo"checked = 'checked'";
    	foreach ( $preference as $var){
    	?>
    	<input type="checkbox" name="checkbox[]" id="checkbox" value="<?php $var['preference'];?>"/><?php echo $var[ 'preference' ]; ?>
        <?php
    	}
    ?>
    le problème est que lors de l'affichage, j'affiche seulement le premier caractère du mot, et la deuxième case a cocher s'affiche vide, plus normalement ses cases doivent être cocher mais ils ne le sont pas, exemple

  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
    Stocker des valeurs multiples dans un meme champ, cela amene forcemment a des gymnastiques pour retraiter les données ; elles sont de plus globalement inexploitables.

    La vraie solution serait de revoir la facon dont est structurée ta base.

    Sinon, commence par controler ce que vaut $preference :
    Pour les cases cochés ca ne peut evidemment pas fonctionner puisque ton "checked" est ecrit avant les cases.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 123
    Par défaut
    Merci pour ta réponse, concernant le controle, j'ai déjà fais un teste et c'est correcte, il est afficher dans mon navigateur les valeurs de mes cases a cocher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => accepte_enfants [1] => accepte_femmes )
    donc j'ai modifier le code, et ce qui suit et le résultat:
    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
     
    <?php 	
    	require_once('php/connexion.php');
     
    	$sql = "select preference from conducteurs where n_conducteur = 17";
    	$resultat = mysql_query($sql) or die(mysql_error());
    	while($rows = mysql_fetch_assoc($resultat)){
    	$preference = print_r(explode(',', $rows['preference']));
    	}
    	foreach ( $preference as $var){
    ?>
    <input type="checkbox" name="preference" value="<?php $var['preference'];?>"  <?php if (in_array('1',$preference)) echo"checked = 'checked'"; ?> /> <?php echo $var[ 'preference' ]; ?> 
    <?php 
    	}
    ?>
    <?php
    avec cette erreur
    Warning: Invalid argument supplied for foreach() on line 9

  4. #4
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    J'ai cru comprendre que tu voulais des cases à cocher comme celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="checkbox[]" value="<?php echo $var;?>" <?php if (condition) echo 'checked="checked"'?>/><?php echo $var; ?>
    Remarque 1 : Tes préférences sont stockées dans $val (et non $val['preferences'].
    Remarque 2 : J'ai enlevé le id="checkbox", les id sont sensés être uniques.
    Remarque 3 : Je n'ai pas compris quelle était la condition pour qu'une case soit cochée, à toi de préciser.

    Pour afficher tes préférences (débugage) procède plutôt comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($rows = mysql_fetch_assoc($resultat)){
    	$preference = explode(',', $rows['preference']);
            print_r($preference);
    }
    Si ça peut t'aider...
    Fred

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 123
    Par défaut
    Voila, j'ai corrigé mes erreur, ci joint le code
    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
     
    <?php 	
    	require_once('php/connexion.php');
     
    	$sql = "select preference from conducteurs where n_conducteur = 17";
    	$resultat = mysql_query($sql) or die(mysql_error());
    	while($rows = mysql_fetch_assoc($resultat)){
    	$preference = explode(',', $rows['preference']);
    	}
    	foreach ( $preference as $var){
    ?>
    <input type="checkbox" name="preference" value="<?php $var;?>"  <?php if (in_array('1',$preference)) echo"checked = 'checked'"; ?> /> <?php echo $var; ?> 
    <?php 
    	}
    ?>
    reste un problème c'est celui des cases cochés, normalement ils doivent être cochées mais ils ne le sont pas!!

  6. #6
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Dans ton tableau $preference, tu as deux éléments :
    accepte_enfants et accepte_femmes.

    La condition que tu donnes pour qu'une case soit cochée est :
    si '1' est dans le tableau.
    Comme '1' n'est ni accepte_enfants ni accepte_femmes, tes cases ne sont pas cochées.

    Fred

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 123
    Par défaut
    d'accord je vois, et qu'est ce que vous suggérez comme solution?!

    peut être quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (in_array('accepte_fumeur, accepte_enfants',$preference))

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 123
    Par défaut
    Bon, je viens de éditer a nouveau ce script, ci joint le code:
    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
     
    <?php 	
    	require_once('php/connexion.php');
     
    	$sql = "select preference from conducteurs where n_conducteur = 17";
    	$resultat = mysql_query($sql) or die(mysql_error());
    	while($rows = mysql_fetch_assoc($resultat)){
    	$preference = explode(',', $rows['preference']);
    	}
    	foreach ( $preference as $var){
    ?>
    <input type="checkbox" name="preference" value="<?php $var;?>" checked = <?php if (in_array('1',$preference)) echo "checked";?> /> <?php echo $var; ?> 
    <?php 
    	}
    ?>
    et ça marche, j'ai mes cases qui sont cochées!!

  9. #9
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    C'est peut-être cela que tu veux faire ?
    Tu as une liste de préférences possibles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $preferencesPossibles=array('accepte_fumeurs','accepte_enfants',...);
    Et pour toutes tes préférences, tu as une cases à cocher...
    qui est cochée si le conducteur a cette préférence
    qui n'est pas cochée sinon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ( $preferencesPossibles as $var){
    ?>
    <input type="checkbox" name="preference" value="<?php $var;?>"  <?php if (in_array($var,$preference)) echo"checked = 'checked'"; ?> /> <?php echo $var; ?> 
    <?php 
    }
    Fred

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2014, 16h01
  2. [Web Service] Problème d'affichage des valeurs renvoyées par un webservice
    Par informatique34 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 11/07/2011, 13h34
  3. Réponses: 11
    Dernier message: 14/03/2008, 16h45
  4. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07
  5. Réponses: 1
    Dernier message: 06/03/2003, 11h57

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