2013-06-24 63 views
0

我正在使用Symfony2。 我想做一些驗證在一個PHP控制器那樣:我可以從js文件中獲得有關Symfony2響應對象的信息:

if ($request->isMethod('POST')) { 
      $old_name = $category->getName(); 

      $new_name = $request->get('value'); 

      if ($same == 0) { 
       //valid 
       $new_response = new Response($name); 
       return $new_response; 
      } else { 
       //not valid 
       $old_response = new Response($old_name); 
       return $old_response; 
      } 
} 

有沒有辦法在發送響應的.js文件檢查 - $new_response$old_response?其中的要點是向用戶附加一條消息,告訴用戶如果發送的響應是$old_response,他輸入了重複值。如果發送的響應是$new_response,則刪除此消息。

非常感謝您提前! :)

回答

1

您可以使用JSON返回一組數據,不僅名字。

控制器:

if ($same == 0) { 
     //valid 
     $new_response = new JsonResponse(array('type' => 'new', 'name' => $name)); 
     return $new_response; 
    } else { 
     //not valid 
     $old_response = new JsonResponse(array('type' => 'old', 'name' => $old_name)); 
     return $old_response; 
    } 

JS:

$.ajax({ 
    url: '...', 
    type: 'POST', 
    dataType: 'json', 
    data: 'value=...', 
    success: function(json) { 
     if (json.type == 'new') 
      // this is new response 
     else 
      // this is old or some other response 

     alert(json.name); // this is the response body (old or new name) 
    } 
}); 

參見:

1

只需查看響應正文。第一個constructer參數是響應的內容(通常是解析的模板)。

也許你想使用JsonResponse($data)

相關問題