Forum Clubic

Pb menu deroulant et javascript

bonsoir,

j’ai un menu deroulant que met en place via une base de données:
Choisir un fournisseur

<?php include 'connexion.php'; $sql_fournisseur="SELECT nom FROM fournisseurs ORDER BY nom ASC"; $req_fournisseur = mysql_query($sql_fournisseur); while($data_fournisseur = mysql_fetch_array($req_fournisseur)) { echo ''.$data_fournisseur['nom'].''; } ?>

Puis dans la fonction, recherche_fournisseur(), je fais s= document.getElementById(‘nom_fournisseur’).value; pour récupérer la valeur

Mon pb est que certaines de la bdd ont des espaces genre FOUR NISSEUR. Par contre dans la fonction, s prend la valeur “FOUR”…ce qui pose bien sur problème!!

le problème vient je pense de l’affichage des résultats de la bdd…qu’en pensez vous?

merci

Je te conseille de remplacer les espaces par un autre caractère quand tu créés tes id :


while($data_fournisseur = mysql_fetch_array($req_fournisseur))
{
echo '<option value='.str_replace(' ','_',$data_fournisseur['nom']).'>'.$data_fournisseur['nom'].'</option>';
}

Bien sur ça risque de poser problème si tu as un fournisseur appelé “mon fournisseur” et un autre “mon_fournisseur” dans ta base de données, mais ça me semble très peu probable :wink:

effectivement si je traite le nom du fournisseur de partout (après je recupère et je le réenvoi dans une requète) ca devrait marcher sans soucis.

comme ca non le “_” n’est pas utilisé…mais au pire je peux mettre &&& comma caractère de remplacement…ca limitera encore plus la probabilité de trouve ca dans le nom

mais comment ca se fait que ca pose problème?

j’ai essaye le meme code sur un champ input et la meme si je met un espace ca fonctionne bien!
Edité le 22/12/2007 à 23:51

Je suppose que l’attribut value de la balise ne supporte pas les espaces. C’est le cas des attributs id et name, donc pourquoi pas :slight_smile:

L’idéal est d’y mettre une valeur numérique, en général la valeur de la clé primaire dans la base de données (si elle est numérique bien sur).
Edité le 23/12/2007 à 00:12

j’ai testé ca marche nickel, merci bien pour le tuyau :wink: