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] Problème d'apostrophe (') avec une liste déroulante


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 64
    Par défaut [Tableaux] Problème d'apostrophe (') avec une liste déroulante
    Hello, j'ai un souci avec mes appostrophe.
    J'utilise addslashes pour remplir la base de donnée mais y'a un souci lorsque je récupére d'une liste déroulante.

    Explication:
    J'ai une page avec une liste déroulante contenant l'ensemble d'auteurs de livre contenue dans ma base. Quand je choisie dans la liste l'auteur, et que je clique sur OK, une deuxième liste déroulante contenant les titres de cet auteur s'affiche. Et je souhaite en cliquant sur OK, effacer ce livre.
    Ma liste contient donc les titres même avec une apostrope, mais quand je fais $_POST['Titre'] il remet pas tout le titre il s'arréte à l'apostrophe.
    ex: dans la liste j'ai L'UN et quand je fais echo $_POST['Titre']; il m'affiche L.

    J'ai testé addslashes($_POST['Titre']); mais ça ne fonctionne pas



    Voila mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <?
    if (isset($_POST['Auteur']))
        { 
     
            $auteur=$_POST['Auteur'];
            echo "<br>".$auteur;
            $reqalb=mysql_query("select titre from LIVRE where auteur ='$auteur' order by titre");
     
            echo"<form method='POST' action='SectionAdmin.php?Typesupp=Livre'>
            Titre: <input type='hidden' name='auteurselect' value='".$_POST['Auteur']."'>
            <select Name='Titre' Id='Titre'>";
     
            while ($data=mysql_fetch_assoc($reqalb))
                {
                    echo"<option value='".$data['titre']."'>".$data['titre']."</option>";
                }
     
            echo"</select><input type='submit' Name='ok' value='ok'></form>";
     
        }
     
     
     
    if (isset($_POST['Titre']))
        {
     
            $auteurselect=$_POST['auteurselect'];
     
            $titreselect=$_POST['Titre'];
     
            $reqdetail=mysql_query("Delete from LIVRE Where auteur='".$auteurselect."' and titre='".$titreselect."'");
     
     
        }
     
     
    ?>
    Celà pose donc problème pour la condition where de ma requete de suppression!

    Si vous avez une idée!
    Merci !

  2. #2
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Salut,

    c'est pas sur la valeur postée que tu dois faire le addslashes, mais sur la valeur avant qu'elle ne soit postée.
    Le problème que tu as c'est que ceci se génère dans ton HTML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option value='L'UN'> ... </option>
    Donc, deux choses à changer: la première, mettre des "" pour le value de option (je crois que c'est dit dans le W3C ca, si je ne me trompe, que les attributs doivent etre entourés de ", et non de ')
    Ca c'était pour la forme
    Ensuite, tu mets un petit htmlentities, car c'est un peu dangereux d'afficher une valeur dynamique directement dans un tag comme ca.

    Ce qui nous donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      echo '<option value="'.htmlentities($data['titre']).'">'.$data['titre'].'</option>';
    Si tu ne veux pas faire comme ca, et conserver ton value='blabla' au lieu de value="blabla", alors tu n'a qu'à rajouter un addslashes et un htmlentities comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<option value='".htmlentities(addslashes($data['titre']))."'>".$data['titre']."</option>";
    Voilaaa

  3. #3
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    Je crois que c'est le meme probleme que ce que j'avai rencontré. essaye en remplacant les ' par des " comme la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($data=mysql_fetch_assoc($reqalb))
                {
                    echo"<option value=\".$data['titre']."\">".$data['titre']."</option>";
                }
    comme ca tu dois voir affiché avec les \ et fait un stripslashes si tu veux les enlever. Et un addslashes par la suite qd tu travaille sur la base pour ne pas que ca bug

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 64
    Par défaut
    Ton idée est bonne, et interessante, mais marche po.

  5. #5
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Citation Envoyé par WyLLoU
    Ton idée est bonne, et interessante, mais marche po.
    laquelle ? à Tr@nkill ou la mienne?

  6. #6
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par défaut
    si jamais ta table contient une clé primaire numérique, je te conseille de mettre cette valeur dans le value et après, tu mets le texte que tu veux pour la liste...
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 64
    Par défaut
    Les deux ne fonctionnent pas enfait...Elle est bisard la derniere,parceque les couleurs du texte est différent pour les $data...

  8. #8
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Qd tu dis "ca ne marche pas", ca fait quoi? une erreur? ou alors le comportement n'a pas changé par rapport à avant ?

    Tu peux coller la partie du code source html avec la liste générée? pour voir si les options se génèrent déjà correctement ou pas.

  9. #9
    Membre confirmé
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Par défaut
    il manque une " dans ce que je t 'ai mi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div style="text-align: left;">while ($data=mysql_fetch_assoc($reqalb))
                {
                    echo "<option value=\"".$data['titre']."\">".$data['titre']."</option>";
                }
    </div>

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

Discussions similaires

  1. Problème avec une liste déroulante
    Par flippaeti dans le forum C#
    Réponses: 1
    Dernier message: 05/06/2009, 19h46
  2. Problème avec une liste déroulante.
    Par kupae dans le forum IHM
    Réponses: 9
    Dernier message: 09/07/2008, 10h12
  3. Réponses: 1
    Dernier message: 08/05/2008, 23h00
  4. problème avec une liste déroulante
    Par valouche dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/05/2007, 09h01
  5. [Débutant] problème avec une liste déroulante
    Par stan21 dans le forum Access
    Réponses: 3
    Dernier message: 12/07/2006, 14h52

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