2017-08-23 77 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