2017-11-25 60 views
0

我創建eisenhover矩陣,我想要一個按鈕來刷新網格中的數據,但我不知道如何傳遞參數/變量與AJAX。Symfony/PHP7,傳遞參數與AJAX

/** 
* @Route("/articles/list", name="articles_list") 
*/ 
public function showArticlesAction(bool $important = false, bool $urgent = false){ 
    $articles = $this->returnAllArticles(); 

    return $this->render(
     'articles/list.html.twig', 
     array('articles' => $articles, 
      'important' => $important, 
      'urgent' => $urgent) 
    ); 
} 

和腳本

function refreshFunctionName() 
    { 
     $.ajax({ 
      type: "POST", 
      url: "{{ path('articles_list') }}", 
      data: {'important': true, 'urgent': true}, 
      cache: false, 
      success: function(data){ 
       $('#list').html(data); 
      }, 
      error: function(){}, 
      complete: function(){} 
     }); 
    } 

的showArticlesAction始終把默認的數據,如果我嘗試使用AJAX使用它,工作正常:

{{ render(controller(
    'AppBundle:Articles:showArticles', 
    { 'important': true, 
    'urgent': true} 
    )) }} 

回答

0

您需要定義的那些參數路線定義:

/** 
* @Route("/articles/list/{important}/{urgent}", name="articles_list") 
*/ 

,你在AJAX調用GET方法或從POST表中獲取這些參數

/** 
* @Route("/articles/list", name="articles_list") 
*/ 
public function showArticlesAction(Request $request){ 
    $articles = $this->returnAllArticles(); 

    $important = $request->request->get('important'); 
    $urgent = $request->request->get('urgent'); 

    return $this->render(
     'articles/list.html.twig', 
     array('articles' => $articles, 
      'important' => $important, 
      'urgent' => $urgent) 
    ); 
}