Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 
  • Portail PHP
  •  » PHP - SQL
  •  » problème liste déroulante dont le contenu contient des apostrophes

#1 08-11-2007 05:26:07

petorine
Membre
Date d'inscription: 26-10-2007
Messages: 6

problème liste déroulante dont le contenu contient des apostrophes

bonjour,
j'ai un souci avec une liste déroulante qui contient des valeurs issues d'une table. Certaines valeurs sont des phrases entière avec apostrophes.
Lorsque l'utilisateur choisit une de ces phrases, ce qui est récupéré dans la base est tronqué au niveau de l'apostrophe. J'ai essayé de passer addslashes($Theme), mais la valeur récupérée est: L\ si la phrase commence par L'.....
Je ne comprends pas pourquoi il ne veut pas de la suite de la phrase.
Par contre, j'ai un autre champs ou l'utilisateur peut saisir et là ça fonctionne bien!
Merci

Hors ligne

 

#2 10-11-2007 13:48:09

Shiva
Moderateur
Lieu: BONNEUIL SUR MARNE
Date d'inscription: 15-11-2005
Messages: 299
Site web

Re: problème liste déroulante dont le contenu contient des apostrophes

Salut,
Montre un peu comment tu as écris ton code

Hors ligne

 

#3 12-11-2007 03:25:53

petorine
Membre
Date d'inscription: 26-10-2007
Messages: 6

Re: problème liste déroulante dont le contenu contient des apostrophes

voici:
[Code]:

<select name="Theme" id="Theme" size="1" onChange='submit()'>
   
<?php
// Récupération des informations triées par ordre alphabétique
$sql2 = "select  * from Theme ORDER BY Libelle";
$ReqLog2 = mysql_query($sql2);
while ($resultat2 = mysql_fetch_array($ReqLog2)) {
  echo '<option ';
    if ($resultat2["Libelle"] == $Theme){
    echo "selected";
    }
   
    echo">".$resultat2["Libelle"]."</option>" ;
    }


echo "</select></td>" ;
echo '</tr>';

(...)
et plus loin



echo "<input type='hidden' name='Theme' id='Theme' value='".$Theme."' >" ;

Hors ligne

 

#4 12-11-2007 05:42:19

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 566
Site web

Re: problème liste déroulante dont le contenu contient des apostrophes

hello,

en général, pour éviter ce genre de soucis, on utilise un identifiant (souvent un nombre, en auto_increment dans la base) associé à du texte.

Code:

<select name="Theme" id="Theme" size="1" onChange='submit()'>
<?php
// Récupération des informations triées par ordre alphabétique
$sql2 = "select  id, libelle from Theme ORDER BY Libelle";
$ReqLog2 = mysql_query($sql2);
while ($resultat2 = mysql_fetch_array($ReqLog2)) {
  echo '<option value="'. $resultat2["id"] .'"';
    if ($resultat2["Libelle"] == $Theme){
    echo " selected";
    }
   
    echo">".$resultat2["Libelle"]."</option>" ;
    }
echo "</select>";

et pas vraiment besoin du input hidden plus bas, avec le même attribut name que le select.

ou alors tu peux aussi n'utiliser que des guillemets pour entourer les valeurs des attributs html.

++

Hors ligne

 
  • Portail PHP
  •  » PHP - SQL
  •  » problème liste déroulante dont le contenu contient des apostrophes