begin process at 2012 05 31 04:50:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Web 2.0

 > 

Ajax

 > 

Pb Ajax-PhP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb Ajax-PhP

mardi 3 mars 2009 à 16:18:18 | Pb Ajax-PhP

Zakki49

Bonjour à tous,

Alors il se trouve que j'ai un petit souci.
J'ai deux liste déroulante la première chargé au démarrage de ma page, et la deuxième qui se charge selon le choix de la première.

pour la deuxième j'ai donc une balise <div> avec un id, qui récupéré la réponse de ma page qui génère ma deuxième liste déroulante.
Jusqu'ici rien de bien sorcier cela fonctionne correctement.
Cependant, ces deux listes sont dans un formulaire, pour un enregistrement en base.

Et c'est là que mon problème se pose, je n'arrive pas à récupérer la valeur de ma deuxième liste déroulante (celle créer dynamiquement dans ma réponse ajax).

Si quelqu'un pouvait me donner un conseil, ou m'aiguiller.


P.S: dites moi si je dois montre mon code :)
mardi 3 mars 2009 à 16:26:07 | Re : Pb Ajax-PhP

kohntark

Membre Club
Salut,

Réponse : montre le code :)

... parce que sinon ça risque d'être dur dur.


Kohntark -

mardi 3 mars 2009 à 16:30:51 | Re : Pb Ajax-PhP

Zakki49

Alors pour les selects :

Premiere


<select name="famille" style="width:200px" onchange="AfficheSSFamille()" id="famille">                  
                       <option value"0">Choisissez une famille</option>
                           <?php
                               $o_Array = new ArrayList();
                               $o_Srv_Famille = new Srv_Famille();
                               $o_Famille = new Object_Famille();
                              
                               $o_Array = $o_Srv_Famille->Get_AllFamille();
                               $nb_element = $o_Array->size();
                               if($nb_element>0)
                               {
                                   for($i=0;$i<$nb_element;$i++)
                                   {
                                       $o_Famille = $o_Array->get($i);
                                       echo("<option value=".$o_Famille->get_ID().">".$o_Famille->get_Libelle()."</option>");
                                   }
                               }
                           ?>
                   </select>

deuxième juste la div :

<div id="ss_famille" style="position:absolute;top:400px;left:485px">
                  
               </div>

La fonction js :

function AfficheSSFamille()
{
    var o_liste    =  document.getElementById("famille");
    var index = o_liste.selectedIndex;    
    var xhr_object = null;
        
       if(window.XMLHttpRequest) // Firefox
          xhr_object = new XMLHttpRequest();
       else if(window.ActiveXObject) // Internet Explorer
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
       else { // XMLHttpRequest non supporté par le navigateur
          alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
          return;
   }
 
       xhr_object.open("POST", "Charge_DDLssFamille.php", true);
        
       xhr_object.onreadystatechange = function() {
          if(xhr_object.readyState == 4)
             document.getElementById("ss_famille").innerHTML = xhr_object.responseText;
       }


Et le code pour générer la deuxième liste déroulante.

<?php
include("Class/Srv_SS_Famille.php");
include("Class/Parametres.php");
    $cs_echo = "";   
    $Srv_SS_Famille = new Srv_SS_Famille();
    $o_SS_Famille = new Object_SSFamille();
    if($_POST["type"] != 0)
    {
        @mysql_connect(parametres::GetHost(),parametres::GetUser(),parametres::GetPass()) or die("Connexion avec le serveur a échouée");       
        @mysql_selectdb(parametres::GetBDD()) or die ("Connexion avec la base de données a  échouée");       
        $result = @mysql_query("SELECT * FROM ss_famille WHERE N_ID_FAMILLE =".$_POST["type"]."");       
        $cs_echo .= "
                    <table>
                        <tr>
                            <td>
                                <span style=\"font-family:arial;font-weight:bold;text-decoration:underline\">Sous-famille : </span>
                            </td>                       
                            <td>
        <select style=\"width:200px\" name=\"ss_famille\" />
            <option value=\"0\">Choisissez une sous-famille</option>
        ";               
        while($disp = mysql_fetch_array($result))
        {           
            $o_SS_Famille = $Srv_SS_Famille->Transform_Record_To_SSFamille($disp);
            $cs_echo .= "<option value=\"$o_SS_Famille->Get_ID()\">".$o_SS_Famille->Get_libelle()."</option>
                                ";
        }
       
        $cs_echo .= "</select></td>
        </tr>
        </table>";
    }      
        echo($cs_echo);
?>
     
       xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       var data = "type="+escape(o_liste.options[index].value);
       xhr_object.send(data);
}


Voila en espérant que quelqu'un trouve, je me casse la tête depuis un bon moment déjà


mardi 3 mars 2009 à 17:16:28 | Re : Pb Ajax-PhP

kohntark

Membre Club
Lecture rapide ....


<option value"0">
=>
<option value="0">

<select style=\"width:200px\" name=\"ss_famille\" />
=>
<select style=\"width:200px\" name=\"ss_famille\">

Pour le debug tu devrais contrôler que la valeur des options est correcte, qu'il n'y a pas de bizarreries dans le code retourné, par exemple en affichant le code brut dans un div "debug", et faire un print_r($_POST); dans la page cible du formulaire.
On ne voit pas ici tes balises <form></form>, sont elles correctement positionnées ?
Pense également à gérer le code de réponse de la requête ajax (if(xhr.status  == 200), else patati ...)

Bon courage,

Kohntark -

mardi 3 mars 2009 à 17:23:59 | Re : Pb Ajax-PhP

Zakki49

oui tout est bien positionné :(
merci quand même pour les quelques corrections, je n'y avait pas fait attention ^^

Autrement j'ai lu que certain construisait via une boucle js le soptions un à un dans le retour.
Mais bon ca va se corser.

Bon je vais essayé de voir, merci quand même
mardi 3 mars 2009 à 17:28:11 | Re : Pb Ajax-PhP

Zakki49

Ceci dit en y pensant, est ce possible que je ne récupère pas la valeur de mon select parceque celui est créer dans un fichier a part?
mardi 3 mars 2009 à 18:43:15 | Re : Pb Ajax-PhP

kohntark

Membre Club
Autrement j'ai lu que certain construisait via une boucle js le soptions un à un dans le retour.
Mais bon ca va se corser.

Utiliser le DOM sera effectivement plus complexe qu'un simple innerHTML. Ca peut paraitre plus lourd, mais ça restera plus simple à gérer si tu fais dans le complexe (c'est clair, non ? )
Dans ton cas innerHTML doit fonctionner et je pense qu'il faut persévérer.

Que donnent les idées de debug que j'ai apportées dans mon dernier message ? des erreurs ? des choses pas claires ?


Ceci dit en y pensant, est ce possible que je ne récupère pas la valeur de mon select parceque celui est créer dans un fichier a part?

Peu importe la source de création si il apparait correctement dans le code de ta page (via le innerHTML), ou plus exactement si le code renvoyé est correct (ce n'est pas parce que tu vois la liste déroulante dans ta page que tout va bien)

Je le redis encore, il est important que tu testes les quelques pistes que je te soumettais pour le debug.
Pense aussi à valider ton code sur le validateur W3C, ça peut permettre de déceler qq erreurs. Qq fois un simple oubli de quote mène au desastre.


Kohntark -

mercredi 4 mars 2009 à 10:10:03 | Re : Pb Ajax-PhP

Zakki49

Réponse acceptée !
Bon bah j'ai trouvé ^^

En faite dans mon code qui génère mon <select>, j'avais oublier les points de concatenation pour Get_ID()

Du coup ca me renvoyai mes parenthèse.
C'etait tout con.
Je te remercie quand même de ton aide Kohntark.



Cette discussion est classée dans : pb, php, liste, ajax, déroulante


Répondre à ce message

Sujets en rapport avec ce message

Liste déroulante en php [ par iomega ] Bonjour à tous!!!J'ai une liste déroulant ou je séléctionne une dateavec un form action et lorsque je sélectionne cette date le problème c'est que cel php : création d'une liste déroulante [ par vir76 ] Salut tout le monde,Etant novice sur PHP, j'aimerais créer une liste déroulante comportant un champ d'une base de données MySQL dans le cadre d'une re liste déroulante [ par monjal26 ] J'ai un petit pb le code suivant ne marche pas alors que je ne vois pas où est le pb. Je veux afficher dans une liste déroulante tous mes nom que j'ai liste déroulante et php [ par ansdodou ] Salut J'ai un probleme assez étrange. je suis parvenu à lister les données de ma base de données dans ma liste déroulant. mais lorsque je veux effectu liste déroulante, php, sql [ par gypsi3000 ] Je souhaiterai faire afficher une liste d'adresse web répertoriée dans une base de données depuis un menu déroulant qui correspond aux thèmes identifi Petit pb en PHP, iniatiliser une variable dans une liste deroulante [ par dadoudamien ] Bonjour,JE galère un peu.J'essaye de mettre a jour dynamiquement la variable $qte666, avec une liste déroulante.voici le tronche de mon code (c juste Liste déroulante simple en php [ par genfy ] Je dispose d'une base de données mysql avec plusieurs enregistrements et d'une page php (page.php) qui selon d'ID saisie affiche mes différentes donné liste déroulante : Pb de valeur [ par one_piece ] salut a tous!!Voila mon probleme:J'ai une liste deroulante,en php ca va de soit,et quand on selectionne une valeur de cette liste je souhaiterais pouv liste déroulante [ par one_piece ] bonjour a tous!! mon pb c'est: j'ai une table qu'on nomera "maTable" qui contient différente valeur. je souhaiterais créer une liste déroulante en php Pb liste déroulante provenant d'une table [ par fredo35m ] Bonjour,j'ai un problème avec ma liste déroulante qui contient les données d'une table. En effet, pour toutes mes listes déroulantes, il m'affiche tou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales