Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-06-2012 11:52:52

nathalie90
Membre
Date d'inscription: 29-05-2012
Messages: 25

de l'aide SVP , undefined +zend select+Ajax+Json

bonjour a tous je demande votre aide comme dernier secours sa fait plus de 2 semaines que j'essaie de résoudre se problème j'ai tout essayé sans succès , je voudrais après changement du premier select ville que le deuxième select quartier change en les quartier se trouvant dans la ville choisie , j'ai fait comme ceci mais j'ai toujours undefined apres changement de ville , SVP SVP aidez moiiiii

dans mon controlleur :

Code:

 public function init()
    {

       $this->_helper->ajaxContext->addActionContext('getdata', 'json')
                               ->initContext();

    }

 public function getdataAction()
    {
         $this->_helper->layout->disableLayout();

         $ville = $this->_getParam('id');
          $quarter = new Quarter();
           $list=$quarter->getQuarter($ville);
            $this->view->reponseAjax = Zend_Json::encode($list);
     }

dans mon getdata.phtml

Code:

<?php echo $this->reponseAjax ;?>

dans mon index.phtml :

Code:

   <script type="text/javascript">
         $(document).ready(function () {
          $("select#ville").change(function () {
            var quarter =
             $.ajax({
              async : false,
               dataType : "json",
                  url:"/frontend/index/getdata/id/" + $("select#ville").val() + "/format/json",
                  evalScript:true
             
                }).responseText;
               
              var options = '';
           for( var i = 0; i < quarter.length; i++) {
          options += '<option value="' + quarter[i].valeur + '">' + quarter[i].choix + '</option>';
         }
          $("select#quarter").empty();
       $("select#quarter").append(options);
      });
    });
</script>

dans mon model quarter :

Code:

  public function getQuarter($id) {
        
        $select = $this->select();
            $select->from($this)
            ->where('quarter.City_cityId = '.$id) ;
            $rows=$this->fetchAll($select);
            
            $options = array();
            foreach ($rows as $row) {
                $options[$row->id] = $row->name;
            }
            return $options;
    }

SVP aidez moi je ne sais plus quoi faire

Dernière modification par nathalie90 (15-06-2012 11:53:24)

Hors ligne

 

#2 15-06-2012 13:40:42

pheuh
Membre
Date d'inscription: 18-03-2010
Messages: 22

Re: de l'aide SVP , undefined +zend select+Ajax+Json

Bonjour,
tiens, c'est rigolo, j'ai fait ça juste ce matin.
voilà en gros ce que ça fait dans mon cas :
(à noter : pas de fonction init dans le controller, et pas de phtml pour getdataAction)

Code:

public function getdataAction()
{
    // pas de .phtml
    $this->_helper->viewRenderer->setNoRender(true);
    // pas de layout autour
    $this->_helper->layout()->disableLayout();

    $model = new My_Model();
    $data = $model->getQuartier($this->_request->getParam('ville'));
    $this->_response->setHeader('Content-Type', 'application/json')->setBody(Zend_Json_Encoder::encode($data));
}

Code:

<script type="text/javascript">
$(document).ready(function(){
    $("#ville").change(function(){
        $.getJSON('/frontend/index/getdata/ville/' + $(this).val(),function(data){
            var items=[];
            $.each(data, function(key, val) {
                items.push('<option value="' + key + '">' + val + '</option>');
              });
            $('#quartier').empty().append(items.join(''));
        });
    });
});
</script>

Hors ligne

 

#3 15-06-2012 13:52:40

nathalie90
Membre
Date d'inscription: 29-05-2012
Messages: 25

Re: de l'aide SVP , undefined +zend select+Ajax+Json

tout d'abord merci pour ta réponse , j'ai essayé ton exemple mais malheureusement rien ne se passe après changement de ville sad ,as tu une idée de la raison ,  est ce que sa peut être du $.getJSON ??

Hors ligne

 

#4 15-06-2012 14:13:20

pheuh
Membre
Date d'inscription: 18-03-2010
Messages: 22

Re: de l'aide SVP , undefined +zend select+Ajax+Json

- si tu essayes déjà d'appeler dans un onglet à part, directement, l'url de /frontend/index/getdata/ville/boston, est-ce que tu récupères bien le json que tu veux ?
- si c'est ok, alors le problème est du côté javascript dans ton formulaire, et il va falloir débugguer avec les outils kivontbien comme firebug : pas d'ereur javascript ? quelle est la réponse de getJson ? code http 200 ?
- est-ce qu'il n'y a pas un bête pb de nommage des champs? <select id="quartier">.... etc.
ça doit être un truc tout bête, parce que là, c'est du code pas compliqué. Mais il faut que tu puisses nous dire si ton erreur se situe côté client ou serveur

Hors ligne

 

#5 15-06-2012 15:24:01

nathalie90
Membre
Date d'inscription: 29-05-2012
Messages: 25

Re: de l'aide SVP , undefined +zend select+Ajax+Json

c'est l'url qui pose problème je crois quand je met directement l'url dans un onglet il me donne error , l'erreur ne se résolut qu’après mettre le contenu de getdataAction en commentaire , donc je crois l'erreur vient du getdataAction mais j'en suis pas sur a 100 %
c'est cette ligne d'ou vient l'erreur

Code:

$data = $model->getQuarter($this->_request->getParam('ville'));

Dernière modification par nathalie90 (15-06-2012 15:41:47)

Hors ligne

 

#6 15-06-2012 15:53:07

nathalie90
Membre
Date d'inscription: 29-05-2012
Messages: 25

Re: de l'aide SVP , undefined +zend select+Ajax+Json

sa y est j'ai résolue mon problème et c'est vraiment un truc banaaal qui m'a fait perdre 2 semaines de boulot , dans mon model quand je récupère le id et le quarter description , j'ai id et name alors que moi dans ma BD j'ai quarterId et quarterDescription , merci pour ton aide j'apprécie bcp

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages