Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-04-2012 10:54:37

marwa
Nouveau membre
Date d'inscription: 12-04-2012
Messages: 5

ajouter des éléments a un combobox issue d'une réponse ajax

Je veux créer deux combobox liée "category" et "SubCategory".
Avec la requête ajax j'envoi le nom de la catégorie choisit a partir du premier combobox a l'action index, selon ce nom je récupère un tableau contenant les sous catégories, je veux donc insérer ses noms dans le 2ème combo box.
les combobox sont crées avec Zend_form
j'ai un autre problème lorsque je teste mon code juste en affichant le nom de la catégorie dans un div, toute la page se charge dans ce div.
Je serais très reconnaissance si vous pouvez m'aider.
Je poste mon code ci dessous:

Le formulaire:

<?php
   
    class Application_Form_SearchProduct extends Zend_Form
    {
   
        public function init()
        {
          $this->setName("SearchProduct");
   
          $a=new Application_Model_Class_Categories();
          $this->setMethod('post'); 
   
   
          /* Combo box Category*/
            $this->addElement('Select', 'Category',array(
             'label'      => 'Category:',
             'AutoComplete'=> true,
   
              'MultiOptions'   => $a->GetCategories(),
             'required' => true ));
   
   
                     /* Combo box SubCategory*/
   
            $this->addElement('Select', 'SubCategory',array(
             'label'      => 'Sub Category:',
             'AutoComplete'=> true,
   
   
             'required' => true ));
   
          $this->addElement('submit', 'Search', array(
                'required' => false,
                'ignore'   => true,
                'label'    => 'Search',
            ));  }   }
    ?>
Le scrypte:

    <script type="text/javascript">
   
        //for send data i'll use jquery library
   
        $(document).ready( function(){
                $('#Category').change(function()
                   {
   
                       var message=$('#Category option:selected').text();
                      if (message != '') {
   
                          //run ajax
   
                         $.ajax({
    type: "GET", // envoi des données en POST
    url: 'http://localhost/EverTags1/Authentification1/public/Product',     
    data:  {'message' : message},
    cache: false,
    success:  function (respond) {
                                       
                                      //$("#menuLeft").html(respond); 
                                        $("#SubCategory").add(respond);                 
   
     }
    })
     ; }});});
       </script>

et mon action:

      public function indexAction()
        {
     
           $form = new Application_Form_SearchProduct();

           $this->view->form = $form;
           $b=new Application_Model_Class_SubCategories();
           $message = $_GET['message'];
           $result = $b->GetSubCategories($message );
           echo($result[0]) ;
           
        }

Hors ligne

 

#2 12-04-2012 11:25:10

marwa
Nouveau membre
Date d'inscription: 12-04-2012
Messages: 5

Re: ajouter des éléments a un combobox issue d'une réponse ajax

j'ai trouver pourquoi toute la page se charge dans le div c'est parce que le résultat de la requête ajax est le code HTML de toute la page comment je fait pour renvoyer juste les donner que je veux

Hors ligne

 

#3 13-04-2012 16:32:56

marwa
Nouveau membre
Date d'inscription: 12-04-2012
Messages: 5

Re: ajouter des éléments a un combobox issue d'une réponse ajax

enfin j'ai trouvé la solution je la met ci dessous en espérant quelle sera utile pour d'autre personne
Le scripte:

<script type="text/javascript">

    //for send data i'll use jquery library

    $(document).ready( function(){
            $('#Category').change(function()
               {

                  var message=$('#Category option:selected').text();
                  if (message != '') {
$.ajax({
type: "GET", // envoi des données en POST
dataType : 'json',
url:  //baseurl+"Product/index",
    'http://localhost/EverTags1/Authentification1/public/Product/index',
async: false, 
data:{"message" : message},
success: 
    function (respond) {

   var json=JSON.stringify(respond);
   var  objet = eval('(' + json + ')');

      e=objet.length;

      var str = "";

    for ( var count = 0 ; count < e; count++ ) {


        str += "<option value='" + count + "'>" + objet[count].name+ "</option>"
    }

     $("#SubCategory").empty().append(""+str);
}

}
);

}});});
   </script>

et l'action:

public function indexAction()
    {


         $form = new Application_Form_SearchProduct();
         $this->view->form = $form;


if($this->_request->isXmlHttpRequest()) {
      $this->_helper->viewRenderer->setNoRender();
      $this->_helper->layout->disableLayout();
           $message = $_GET['message'];

         $soap_client = new nusoap_client('http://127.0.0.1/evertags/GetCategorySubCategories/servSubCategories.php?wsdl','true');
         $proxy = $soap_client->getProxy();
         $result= $proxy->ReturnSubCategoriesNames($message);

          echo $result;



}

Hors ligne

 

#4 13-04-2012 23:52:27

Bobu
Membre
Date d'inscription: 14-10-2011
Messages: 15

Re: ajouter des éléments a un combobox issue d'une réponse ajax

Merci pour le feedback !

N'hésite pas à checker Zend_Soap pour t'éviter une librairie supplémentaire pour le Webservice client wink .

A+

Hors ligne

 

#5 16-04-2012 23:00:58

marwa
Nouveau membre
Date d'inscription: 12-04-2012
Messages: 5

Re: ajouter des éléments a un combobox issue d'une réponse ajax

Bobu a écrit:

Merci pour le feedback !

N'hésite pas à checker Zend_Soap pour t'éviter une librairie supplémentaire pour le Webservice client wink .

A+

Bonsoir Mr Bobu, j'ai pas compris votre remarque pourriez vous m'expliquer qu'est ce que vous voulez dire.

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