symfony2和jquery $ .post()

时间:2012-07-06 10:36:42

标签: jquery symfony

当我使用jquery $.post()serialize()函数时,如何在symfony2控制器中获取post参数?

假设我有一个这样的表格:

<form id="formSuppression" method="post" action="#" name="formSuppression">

<input id="form_raison_0" type="radio" value="0" required="required" name="form[raison]">
<input id="form_raison_1" type="radio" value="1" required="required" name="form[raison]">
<input id="form_raison_2" type="radio" value="2" required="required" name="form[raison]">

<input id="form_annonce" type="hidden" name="form[annonce]" value="113664890">

<input id="btnSupprimer" type="submit" style="float: right" value="Envoyer" name="btnSupprimer">
</form>

和jquery函数:

$("#formSuppression").submit(function(event) {
        event.preventDefault(); 
        var r = $(this).serialize();        
        var url = $(this).attr("action");       
        $.post(url, {
            a:r, 
           }, function(result){
            alert(resul);
        }, "text");                
    });

控制器:

if ($request->isXmlHttpRequest()) {                    
               $id = $request->request->get('a');
                ...

使用该控制器,我有form%5Braison%5D=2&form%5Bannonce%5D=113664890变量<{1}}。$id变量

但是我想要“=”符号后的值。如果不在控制器中使用任何其他PHP函数(如explode,substring ...),我该怎么做?

由于

3 个答案:

答案 0 :(得分:0)

在jquery post方法的params参数中,不要使用{a:r}而只使用{r}

$.post(url, {
        r, 
       }, function(result){
        alert(resul);
    }, "text");    

然后在控制器中

$form_value = $request->get("form"); 
$raison = $form_value['raison'];
$annonce = $form_value['annonce'];

答案 1 :(得分:0)

试试这个

$ FormData = $$ request-&gt; request-&gt; get('form');

此$ formData包含所有提交的表单字段值

答案 2 :(得分:0)

$.post(url, {
        r, 
       }, function(result){
        alert(resul);
    }, "text"); 

将其更改为

$.post(url, {
        r, 
       }, function(result){
        alert(result);
    }, "text");