2017-08-23 53 views
0

我的Javascript代碼:發送它Ajax請求如何Ajax請求連接到symonfy2控制器

$(document).ready(function() {  
    $('input[type="checkbox"]').change(function(){ 
    var ids = ['filter_1','filter_2','filter_3','filter_4'];  
    for(var i = 0; i < ids.length; i++){ 
     if(document.getElementById(ids[i]).checked === true){ 
     var data = {request : $('#'+ ids[i]).val()};   
     } 
    }  
    $.ajax({ 
      type: 'POST', 
      url: Routing.generate('listingpage'), 
      contentType: 'application/x-www-form-urlencoded', 
      data: data,   
     success: function(result,status,xhr){ 
      var inst_arr = JSON.parse(result);    
      console.log(inst_arr); 
      } 
     }); 
     }); 
     }); 

在這裏,我有IDS 'FILTER_1', 'filter_2', 'filter_3', 'filter_4' 多個複選框單獨返回請求。我怎麼能附加多個請求(就像我選擇兩個複選框,我想一次顯示兩個請求)成單個請求。

我的控制器編碼:

if($request->isXmlHttpRequest()){ 
     $data = $request->request->get('request'); 
     // $this->container->get('logger')->addInfo('somesh'.$data);   
     $repository = $em->getRepository('EdufactionBundle:Institute');  
     $queryBuilder = $repository->createQueryBuilder('i'); 
     $query = $queryBuilder 
        ->innerJoin('i.instsummary', 's')  
        ->innerJoin('i.address', 'a') 
        ->innerJoin('i.insturl', 'u') 
        ->select('s.instaffiliation') 
        ->setParameter('instaffiliation', $data) 
        ->getQuery()->getResult(); 
     return $json = new Response(json_encode($query)); 
     } 

這裏控制器的數據,如果我選擇第一複選框它返回1,如果我選擇複選框2返回2.如何發佈2個複選框數據轉換成單獨的請求和我怎樣才能將多個請求綁定到單個請求中。 請幫助我的人

回答

0

爲您做的一個解決方案是jQuery.when()一個接一個地運行多個ajax請求。工作是這樣的:

$.when($.ajax("Your first ajax request"), $.ajax("Your second ajax request")).done(function(a1, a2) { 
    // a1 and a2 are arguments resolved for the your two ajax requests, respectively. 
    // Each argument is an array with the following structure: [ data, statusText, jqXHR ] 

    //HERE Do something after all requests was done 
    console.log("Do Something..."); 
    } 
}); 
+0

感謝您的回覆伊馬德Dehnavi,我想送一個請求動態的方式來控制器 – somesh

+0

我怎麼可以綁定多個請求使用VAR數據= {請求:$(「#」 + IDS [ I])VAL()}。 – somesh

+0

如何將數組作爲數組傳遞給數組(1,2,3)values [ - > setParameter('instaffiliation',$ data)] – somesh