Ajax调用后无法从控制器提交表单[symfony]

时间:2019-06-28 09:22:01

标签: javascript php jquery ajax symfony

我有一个视图,单击后需要将javascript变量发送到包含要发送到数据库的表单的控制器的视图。 因此,单击之后,我正在使用ajax调用我的控制器,并将html加载到同一视图中,如下所示:

$(".month").click(function(){

            var click = $(this);

            var month = click.val();
            var year = $("#years").val();


            var url = Routing.generate('av_platform_formulaire');

            $.ajax(url,
                {
                    type: 'GET',
                    data: {"month": month,
                          "year" : year},
                    dataType: "html",
                    success: function (data) {

                        $('#content').empty();
                        $('#content').append(data);

                    },
                    error : function(jqXHR, textStatus, errorThrown){}
                });
});

到目前为止,没有问题,包含表单的视图正在正确加载,并且接收到我通过ajax请求发送的数据,但是当我填写表单并尝试提交它时,页面正在刷新,这就像什么都没发生...

这是我的2个控制器(第二个是有问题的控制器):

public function saisieAction(Request $request){

        $thisyear = date("Y");

        return $this->render('AvPlatformBundle:Platform:saisie.html.twig',
            array(
                'year' => $thisyear
            ));
}
public function formulaireAction(Request $request){


        $user = $this->getUser();

        $em = $this->getDoctrine()->getManager();
        //$repository = $em->getRepository('AvPlatformBundle:NoteDeFrais');


        // Create the form
        $form = $this->get('form.factory')->createBuilder(FormType::class)
            ->add('ndf', CollectionType::class, array(
                'entry_type' => NoteDeFraisType::class,
                'label' => false,
                'allow_add' => true,
                'allow_delete' => true,
            ))
            ->getForm();

        if ($request->isXmlHttpRequest()){

            $month = $request->get('month');
            $year = $request->get('year');
            $sub_date = $month . '/' . $year;


        }

        if ($request->isMethod('POST') && $form->handleRequest($request)->isValid()) {
            // After debugging, the code inside the if is not executed
            $notesDeFrais = $form['ndf']->getData();


            foreach ($notesDeFrais as $ndf) {
                $ndf->setUser($user);
                $ndf->setMois($sub_date);
                $em->persist($ndf);
            }

            $em->flush();

        }

        return $this->render('AvPlatformBundle:Platform:formulaire.html.twig',
            array(
                'form' => $form->createView()
            ));
    }

我的视图包含以下格式:

 <div id="ms_form">

        {{ form_start(form) }}


        <div id="bloc_saisie" class="fieldset">
            <fieldset>


                <div id="form_ndf" class="form_ndf" data-prototype="
                {% filter escape %}
                {{ include('AvPlatformBundle:Platform:prototype.html.twig', { 'form': form.ndf.vars.prototype }) }}
                {% endfilter %}">
                </div>

                <div class="buttons">
                    <button type="button" class="fas fa-plus" id="add_ndf"></button>
                    <input type="submit" class="btn btn-primary btn-lg" id="next_button" >
                </div>


            </fieldset>
        </div>



        {{ form_row(form._token) }}
        {{ form_end(form, {'render_rest': false}) }}


    </div>

0 个答案:

没有答案