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 :

problème de boucle ou d'identifiant


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut problème de boucle ou d'identifiant
    bonjour

    j'ai une boucle qui recupere des annonces auto
    dans cette meme boucle je recupere les options des autos

    et dans cette meme boucle je presente le tout sous forme de formulaire .
    donc je doit cocher les chekboxs et selectionne les valeurs des select
    pour les select c'est ok mon probleme et de cocher les chekbox selon le tableaux
    des options $liste_options .
    lorceque l'option 6 existe dans le tableaux la checkbox ce coche bien mais le probleme c'est qu'elle se cochent dans autant de formualire qu'il en existe ,
    pourtant quand je fait un echo de $liste_options a l'interieur de mon form
    j'ai bien les options qui correspondent a chaque auto, et meme si la 6 n'y est pas elle se trouve cocher malgré tout dans le formulaire.

    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
    boucle annonce  auto    {
    $id_auto =['$id'];
    
    les option de l'auto   {
    $liste_options ['option_auto'] = (6,14,15,11,22,9,63,58etc....)
    } fin les option de l'auto
    
    <div id="formulaire">
        creation du formulaire     {
        -select
        <input type="checkbox" id="option_6" class="chek_option" name="option[]"
        value="6" <? if ($liste_options['option_auto']=6) { echo 'checked="checked"
        ';}?> />}
    </div> ferme div formulaire>
    
    }fin boucle annonce auto 
    j'espere avoir ete explicite

  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
    Tu peux utiliser la fonction in_array() pour controler si ta valeur est presente dans ton tableau $liste_option

    Sinon cela va etre difficile de te repondre mieux car ton message et ton code sont incomprehensibles.

    Il y a une erreur la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($checkbox['option_auto']==6)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    slt sabotage ,
    oui j'ai rectifié l'erreur $liste_option a la place de $chekbox
    pour les = ou == si je met = sa coche la case partout
    si je met == sa ne la coche nul part


    je crée un formulaire pour chaque annonce auto

    j'arrive bien a cocher ma case si la valeur 6 et bien dans le tableaux
    $liste_options mon probleme c'est qu'elle se coche dans tout les formulaire
    meme ceux qui concernent les autos qui non pas d'option 6

  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
    Est-ce qu'on pourrait avoir le vrai code ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    hypothese:
    donc j'ai 3 resultats
    j'aurai 3 formulaires
    et dans chaque formulaire j'aurai la liste des options
    sa fait
    formulaire N°1 echo $checkbox['option_auto'] = 1,4,6,8,9,7
    formulaire N°2 echo $checkbox['option_auto'] = 1,5,89,47
    formulaire N°3 echo $checkbox['option_auto'] = 1,3,4

    le probleme dans mes 3 formulaire la case qui correspond a l'option 6 se trouve cocher alors qu'elle devrais se cocher uniquement dans le formulaire 1




    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
    $recup_annonce = "select * from automobile where id_membre='$id_membre'";
     
    $les_annonces = mysql_query ($recup_annonce);
    while($row = mysql_fetch_array ($les_annonces))
    {
    $id_auto = $row['id']; 
    $marque=$row['marque'];
    $modele=$row['modele'];
    $mois=$row['mois'];
    $annee=$row['annee'];
    $prix=$row['prix'];
    //   etc..................
     
     
    // le titre de l'annonce si on click dessus ou fait apparaitre la div qui 
    // contient le formulaire
     
    <a href="#" onclick="depli('<? echo $id_auto;?>')" title="click pour deplié">
    <table style="width:650px;text-align:center;">
    <tr class="tr" >
    <td style="width:125px;"><? echo $nom_marque;   ?></td>
    <td style="width:130px;"><? echo $blase_modele; ?></td>
    <td style="width:90px;"><? echo $couleur_carro;?></td>
    <td style="width:110px;"><? echo number_format($kilometrage, 0, ',', ' ');?>
     Km</td>
    <td style="width:90px; "><? echo number_format($prix, 0, ',', ' ');
     echo "&nbsp;€" ?></td>
    </tr>
    </table>
    </a>
     
     
    //je recupere les options des auto
    $coche_options =
    "select id_auto,option_auto from options where id_auto='$id_auto'";
    $tableaux_options = mysql_query ($coche_options);
    while($checkbox = mysql_fetch_array ($tableaux_options))
    {
    echo $checkbox['option_auto'];
    echo "---";
    }
     
     
     
     
    //la div qui contient le formulaire  
    <div id="<? echo $id_auto;?>" class="raison_sociale">
     
     
    // le formulaire
    <div class="option2">
    <input type="checkbox" id="option_6" class="chek_option" name="option[]"
     value="6" 
    <? if ($checkbox['option_auto']==6) { echo 'checked="checked" ';}?> />
    <label for="option_6">Ronce de Noyer </label>
    </div>
    // fin de form
     
    }

  6. #6
    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
    Je me repete mais c'est ==6 pas =6

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    d'accord sabotage avec = la case 6 se coche dans tout mes formulaires
    et avec == elle ne se coche nul part ,

    je pensais que le == voulais dire exclusivement
    car dans mon tableaux je n'est pas que 6 !!!

    j'essai en meme temps de comprendre mais voila c'est rectifié

  8. #8
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Attention si tu met fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($checkbox['option_auto']=6)
    tu affecte 6 à $checkbox['option_auto'] et tu entre dans le if si l'affectation c'est bien passée (c'est à dire tout le temps). C'est pour ça que tu entre à chaque fois dans ton if.
    Si tu fais == tu test l'égalité entre les 2 valeurs.

    Est ce que tu es sur que ce n'est pas une erreur de données, dans ta base tu as peut être 06 ou une chaine de caractère (essaye de faire =='6') parce que ton code à l'air correct.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    (essaye de faire =='6') ne coche pas la case

  10. #10
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    TU es bien sur que tu compare bien la bonne colonne? Tu teste sur option_auto qui à l'air d'être un libellé. Tu ne devrais pas tester sur l'id_auto?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    option_auto etant la reference des options

    id_auto etant la reference de l'auto

  12. #12
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Essaye de faire afficher ce que tuas dans ton tableau au moment ou tu fais le test pour comprendre pourquoi test ne fonctionne pas.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    et bien je fait un echo $checkbox['option_auto'] a l'interieur de chacun de mes formulaire crée par la boucle


    et je recupere bien la liste des option de chaque auto
    sans probleme .


    maintenant pourquoi il y a une confusion entre les formulaires

  14. #14
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Oui mais ton if il se situe à l'extérieur de la boucle. Quand tu sors de ta boucle le tableau contient le denier élément (ou il même peut être vide je ne me souvient plus). Il faudrait que tu teste à chaque passage de ta boucle si la valeur est ou non, le mettre dans une variable et en dehors de ta boucle tester cette variable).

  15. #15
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while($checkbox = mysql_fetch_array ($tableaux_options))
    {
    echo $checkbox['option_auto'];
    echo "---";
    }
    $checkbox['option_auto'] vaudra toujours la valeur de ton dernier enregistrement puisque tu fais juste une boucle.

    Il faut faire comme je l'ai dit au début :
    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
     
    while($checkbox = mysql_fetch_array ($tableaux_options))
    {
    echo $checkbox['option_auto'];
    echo "---";
    $liste_options[] = $checkbox['option_auto'];
    }
     
     
    //la div qui contient le formulaire  
    <div id="<? echo $id_auto;?>" class="raison_sociale">
     
     
    // le formulaire
    <div class="option2">
    <input type="checkbox" id="option_6" class="chek_option" name="option[]"
     value="6" 
    <? if (in_array(6,$liste_options) { echo 'checked="checked" ';}?> />
    <label for="option_6">Ronce de Noyer </label>
    </div>
    // fin de form
     
    }

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    j'ai pas suivi quel if ,

    mon formulaire est dans la boucle et par concequent
    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <? if ($checkbox['option_auto']==6) { echo 'checked="checked" ';}?>
    et aussi dans la boucle tout et dans la boucle

    tiens voila en piece jointe un echo de $checkbox['option_auto']

    sur deux formulaire l'un qui contient la valeur 6 et l'autre non bien sur
    Images attachées Images attachées   

  17. #17
    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
    Regarde ce que je viens de mettre et arrete d'ecrire =6 c'est ==6

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    c'est une erreur de frappe sabotage , j'ai rectifié depuis longtemps ,
    meme si cela ne donne pas de resultat puisque comme je t'est dit aucun case ne se coche

  19. #19
    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
    as-tu appliqué ce que j'ai dit precedemment ?

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    oui j'ai fait un check du tableaux de cette maniere

    mais sans resultat a par que cela a deglingué un peu mon html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <? if (in_array ("6", $checkbox['option_auto'])==6) { echo 'checked="checked" ';}?>

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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