0

我如何用来自 ajax 响应的元素填充组合框 ps:组合框是用 Zend_form 创建的

我的表格

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

js脚本

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

我的行动

  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] 包含以下字符串 Women's Clothing

当我从第一个组合框中选择元素时,我遇到了另一个问题,页面自动复制,我找不到问题

4

2 回答 2

0

代替:

echo($result[0])

尝试:

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

并将您的成功功能更改为:

success: function(data.result) {
    $("#SubCategory").add(data.result);
}
于 2012-04-12T02:18:30.857 回答
0

我找到了我的问题的解决方案

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

那个行动:

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;



}

我希望它会帮助其他人

于 2012-04-13T14:29:26.103 回答