Probleme des combobox avec les espace en php

dalaldolla Messages postés 31 Statut Membre -  
dalaldolla Messages postés 31 Statut Membre -
Bonjour,

Bonjour, tou le monde
mon probleme c'est que : je fait un combobox dans ma page de site web ,ce combobox est alimenter a partit de la base de donnée en utilisant requéte select mais les text ou b1 les itemes qui sont afficher comporte des espace et quant je selectionner un item qui contient un espace par exemple(item:ahmed majid) l'item sera (ahmed)
comment regler le probleme d'espace pour quelle je peut inserer l'item selectionner (ahmed majid) dans la base de donnée correctement

je travail avec php + mysql
merci d'avance

15 réponses

  1. Heliotte Messages postés 1561 Statut Membre 92
     
    Bonjour dalaldolla,

    1) Peux-tu donner la structure de la table qui concerne le nom et le prénom que tu as désigné (ahmed majid).

    2) Cette chaîne de caractères ahmed majid sort-elle d'un seul champ ou de plusieurs champs ?

    3) Comment récupères-tu l'item de la combobox ?
    1
  2. Heliotte Messages postés 1561 Statut Membre 92
     
    Salut dalaldolla,

    Peux-tu me confirmer que, lorsque tu regarde dans la table de PHP My Admin, tu retrouves bien Ahmed Majid dans le champ NOM de la table Agents ??

    Edit:

    Toujours cette balise ouvrante <?php à la place de <?
    1
  3. Heliotte Messages postés 1561 Statut Membre 92
     
    Attention .. ce que vous me dites là sont deux choses différentes.

    $nom provient de $_POST['nom'];, c'est à dire la variable qui passe de page en page,

    tandis que : echo "<option>".$result->Nom."</option>\n"; provient de la requête !!

    Edit : faute d'orthographe
    1
  4. dalaldolla Messages postés 31 Statut Membre
     
    bonjour,Heliotte ,merci boucoup
    1-Table Agents :
    ( matricule: text c'est la clé
    Nom: text
    prenom:text
    ..........)

    2-Cette chaîne de caractères ahmed majid sort d'un seul champ (champ Nom)?
    3-voila mon code pour récupérer les items:

    <form name="programme" id="programme" method="post" action="cong.php" >
    <table >

    <tr class='Ligne_R'>
    <TD><FONT color="FFFFFF"><b> Selectionner Le Nom</FONT></b></TD>
    <TD><select name='nom' id="nom" onchange="document.forms['programme'].submit();">

    <?
    $nom=$_POST['nom'];
    ?>

    <OPTION value=<?echo"$nom"?> > <?echo"$nom"?> </OPTION>

    <?

    $sql = "SELECT Nom FROM Agents WHERE(CodeStatut=8 or CodeStatut=9) And CodePosition=9 AND CodeChef=$num ORDER BY Nom" ;
    //exécution de la requête:
    $requete = odbc_do($cnx, $sql) ;
    //affichage des données:
    while( $result = odbc_fetch_object( $requete ) )
    {
    echo "<option>".$result->Nom."</option>\n";
    }

    $nom=$_POST['nom'];

    ?>
    </select>
    </TD>
    </TR>

    il ya d'autre combobox dans ma page
    combobox pour selectionner le prenom
    combobox pour selectionner le Matricule
    donc quan je selectionne le nom Ahmed Majid
    et apres selectionne le prenom le nom devient Ahmed seul
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dalaldolla Messages postés 31 Statut Membre
     
    slt,Heliotte
    oui , je retrouve bien Ahmed Majid (avec l'espace)dans le champ NOM de la table Agents
    j'ai remplacer <? par <?php mais le probleme rest
    0
  7. dalaldolla Messages postés 31 Statut Membre
     
    je travail aussi avec la base de donnée access donc si vous connez comment regler ce pbm avec access ça va m'aider encore
    0
    1. Heliotte Messages postés 1561 Statut Membre 92
       
      Le même problème avec ACCESS ?

      Edit:
      C'est quand vous quittez la combobox avec les noms que ce problème arrive ?
      C'est quand vous sélectionnez dans la deuxième combobox que ce problème arrive ?
      0
  8. Heliotte Messages postés 1561 Statut Membre 92
     
    Pouvez-vous tester ces deux codes :

    -    echo "<option>".htmlspecialchars($result['Nom'])."</option>\n";
    ou
    -    echo "<option>".htmlspecialchars($result->Nom)."</option>\n";

    à la place de : echo "<option>".$result->Nom."</option>\n";

    Merci de me tenir au courant.
    0
  9. dalaldolla Messages postés 31 Statut Membre
     
    slt
    quand je sélectionne dans la deuxième combobox ce problème arrive ?
    mais meme si je quitte le combobox des noms sans selection d'un autre combobox le probleme arrive car si je fait :
    echo"$nom";affiche Ahmed

    je pense que le probleme dans la fonction onchange="document.forms['programme'].submit();"
    voila j'ai essayer de supprimer la fonction onchange et le probleme résolu est s'affiche Ahmed Majid mais il revient un autre probleme c que les autre combobox ne fonctionne pas car la deuxieme combobx utilise le resultat la premiere
    la deuxieme combobox contient la reqeute suivante :
    $sql = "SELECT Matricule FROM Agents where Nom='$nom' and Prenoms='$prenom' and (CodeStatut=8 or CodeStatut=9) And CodePosition=9 AND CodeChef=$num " ;
    0
  10. dalaldolla Messages postés 31 Statut Membre
     
    regarde Mr

    la variable $nom = $_POST['nom'];, c'est la valeure qui je selectionner
    0
  11. dalaldolla Messages postés 31 Statut Membre
     
    la variable $nom = $_POST['nom'];, represente la valeure qui je selectionner
    0
  12. Heliotte Messages postés 1561 Statut Membre 92
     
    D'accord, mais dans cette requête, je ne vois le $nom:

    $sql = "SELECT Nom FROM Agents WHERE(CodeStatut=8 or CodeStatut=9) And CodePosition=9 AND CodeChef=$num ORDER BY Nom" ;
    0
  13. dalaldolla Messages postés 31 Statut Membre
     
    je vous dite que la reqeute de la deuxieme combobox qui comport le $nom càd:

    1-je selectionne le nom(Ahmed Majid) et just apres
    la deuxieme combobox affiche tous prenoms des agents ayant le nom (Ahmed Majid)la requete=$sql = "SELECT prenom FROM Agents where Nom='$nom' and (CodeStatut=8 or CodeStatut=9) And CodePosition=9 AND CodeChef=$num " ;

    je selectionne le prenom (dalal) et just aprés le Matricule de (Ahmed Majid dalal)
    s'affiche (s'affiche un seul matricule car c'est la clé)et la requete ($sql = "SELECT Matricule FROM Agents where Nom='$nom' and Prenoms='$prenom' and (CodeStatut=8 or CodeStatut=9) And CodePosition=9 AND CodeChef=$num " ; )

    je besoin les varibles:
    $nom,$prenom,$mat pour les inserer dans un autr tabe

    j'espr que c claire
    0
  14. Heliotte Messages postés 1561 Statut Membre 92
     
    Ok.

    Dans le code source de la page, pouvez-vous savoir ce que vaut $nom et l'équivalent dans les items <Option> ?

    Avez-vous FireBug, un plug'in pour Firefox ?
    0
  15. dalaldolla Messages postés 31 Statut Membre
     
    merci bouuuuuuuucoup
    j'ai resoudre le probleme just maintenant ,voila qu'est ce je fait :

    l'enciene code c'est :
    dans la premiere combobox j'ai fait un appel à la fonction clear_combonom()
    <select name='nompren'id="nompren" onchange="clear_combonompren();">

    function clear_combonom()
    {
    prenom.options.length=0;//pour effacer le premier item qui est déja
    selectionné dans la deuxieme combobox qui comporte les prenoms
    mat.options.length=0;
    document.forms['programme'].submit();
    }

    dans la deuxieme combobox j'ai fait un appel à la fonction clear_comboprenom()

    function clear_comboprenom()
    {
    mat.options.length=0;
    document.forms['programme'].submit();
    }

    dans la troisieme combobox j'ai fait un appel à la fonction clear_combomat()

    function clear_combomat()
    {
    document.forms['programme'].submit();
    }

    Vous rappelez-vous ce que je vous ai dit hier,
    <<je pense que le probleme dans la fonction onchange="document.forms['programme'].submit();" >>

    donc q'est ce que je fait maitenant
    la nouvelle code :

    puisque j'ai remarquer que si je selection le nom (Ahmed Majid)
    la deuxieme combox affiche tous les prenoms de cette nom donc la variable $nom
    ca marche et elle contient la valeure exact mais
    quand je selectionne le prenom just aprés l'item selectionné dans la premiere combobox devient (Ahmed )
    donc le probleme est dans la deuxieme combobox et exactement dans la fonction on change allor je viens de supprimer l'instruction (document.forms['programme'].submit();
    )de la fonction on change de la combobox des matricules et je met dans la premier combobox (le nom / et le prenom)
    donc j'ai deux combobox au lieu de trois:
    1-la premiere pour le nom et le peonom avec la fonction clear_combonom()
    2-la deuxime pour le matricule et ne contient pas la fonction clear_combomat

    pourquoi je fait le nom et le prenom dans un seule combobox car si je laisse
    dans deux combobox différent

    j'ai obliger de supprimer la fonction on change de la combobox des prenom et comme ca le matricule s'affiche pas
    0
  16. dalaldolla Messages postés 31 Statut Membre
     
    slt,
    la solution que je fait c'est just un depannage
    si vous avez trouver une autre solution SVP me tenir au courant
    0