2012-04-11 2 views
0

wie kann ich ein Kombinationsfeld mit dem Elemente von Ajax-Antwort ps füllen: das Kombinationsfeld mit Zend_Formhinzufügen Element zu einem mit Zend_Form erstellt Kombinationsfeld mit dem Elemente von Ajax-Antwort

Meine Form erstellt wird

<?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', 
     )); } } 
?> 

die js Skript

<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', 

    //baseurl+"/Product/index", 

data: {'message' : message}, 

cache: false, 
success: function (respond) { 
           //put respond in class show-msg 


            //$("#menuLeft").html(respond); 
            $("#SubCategory").add(respond);     

} 
}) 
; }});}); 
    </script> 

meine Aktion

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]) ; 

    } 

$ result [0] die folowing String Damenbekleidung enthält

und ich habe ein anderes Problem, wenn ich das Element aus dem ersten Kombinationsfeld der Seite dupliziert ich wählen, und ich kann das Problem nicht

Antwort

0

ich die Lösung für mein Problem finden

<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> 

die Aktion:

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; 



} 

Ich hoffe, dass es andere Leute

0

Statt finden, :

echo($result[0]) 

Versuch:

$this->view->result = $result[0]; 

und Ihre Erfolgsfunktion ändern :

success: function(data.result) { 
    $("#SubCategory").add(data.result); 
} 
+0

Ihre Lösung funktioniert nicht nichts, helfen wird angezeigt, –

+0

Ihr data.result ist der erwartete Wert? –

+0

Versuchen Sie jQuery ("# ​​SubCategory"). Leer(). Append (""); –

Verwandte Themen