从Symfony2控制器中的序列化字符串中获取数据

时间:2013-08-16 15:41:06

标签: jquery symfony post serialization

我正在尝试弄清楚如何从提交表单的serialized字符串中获取数据。

$(document).ready(function() {
    $("#formC").on('submit', function(e) {
         var url = $(this).attr("action");

        e.preventDefault();

        $.post(url,{
            data: $("#formC").serialize(),
            type: 'post'
        }).done(function(data) {
            alert(data);
        });
    });

形式:

<form action="{{ path('advd_p_group_ps_rd_ss') }}" method="post" {{ form_enctype(formBase) }} id="formC">
                                    <thead>
                                        <tr>
                                            <th><input type="checkbox" id="selectall"></th>
                                            <th>{{ 'general.date'|trans }}</th>
                                            <th>{{ 'general.order_number'|trans }}</th>
                                            <th>{{ 'general.description'|trans }}</th>
                                            <th>{{ 'general.company_name'|trans }}</th>
                                            <th>{{ 'general.name'|trans }}</th>
                                            <th>{{ 'form.status'|trans }}</th>

                                        </tr>
                                    </thead>
                                        {% for details in details %}
                                    <tbody>
                                        <tr>

                                            <td><div align="center"><input type="checkbox" class="selectedId" name="selectedId" value="{{details.id}}" onclick="javascript:resetSelectAll();" /></div></td>
                                            <td>{{ details.date | date("m/d/Y") }}</td>
                                            <td>{{ details.order_number }}</td>
                                            <td>{{ details.description }}</td>
                                            <td>{{ details.company }}</td>
                                            <td>{{ details.name }}</td>
                                            <td>{{ details.status }}</td>


                                        </tr>
                                    </tbody>
                                        {% endfor %}

                            </table> 

                        </div>
                    </div>
                {% if info == 1 %}
                    <div id="information">
                        <div id="tableContent">

                                    {{ form_widget(form) }}
                            <input class="input_button" type="submit" value="Procesar" id="procesar" />
                            </form>

控制器:

public function groupBatchPrizesRequestedAction(Request $request){
   if ( $request->getMethod() == 'POST' ) {
        $data = $request->get('data');
}

die($data)时的输出是这样的:

selectedId=23&selectedId=25&requested%5Bstatus%5D=11&requested%5Bcomments%5D=sdsds&requested%5B_token%5D=e40bc826cce8b756ecce002181301e951e588028

我的问题是,如何获取所有“selectedId”,requested_status及其评论?有没有办法将它作为一个数组发送,一个数组更容易处理......

2 个答案:

答案 0 :(得分:3)

使用serializeArray功能正确提交您的数据。

$.post(url,{
    data: $("#formC").serializeArray(),
    type: 'post'
})

答案 1 :(得分:0)

在您的控制器中使用:

$request = $this->get('request');
$data = $request->request->all();