单击symfony 3

时间:2019-05-01 12:49:41

标签: jquery ajax symfony

所以我有一个已经在下拉列表中加载的用户列表,我想在需要用户ID加载的地方加载第二个SQL查询。所以选择用户后,我无法执行第二个查询。对我来说似乎一切都很好

这是我的树枝文件中的内容

<select style="color: orangered;" id="visiteurSelectionne" class="zone">
            <option disabled selected value="0">Selectionnez un 
              visiteur</option>

            {% for user in users %}
                <option value={{ user.id }}>{{ user.username }}</option>
            {% endfor %}
        </select>
        <label class="titre">Mois :</label>

        <select style="color: orangered;" id="selectMoisDispo" class="zone">
            <option disabled selected value="0" class="date">Selectionnez une date</option>

        </select>

这是我的Js函数

$(document).ready(function () {
                $('#ficheInfos').hide();
                $('#visiteurSelectionne').on('change', function () {
                    $.ajax({
                        url: './valide',
                        type: 'POST',
                        dataType: 'json',
                        data: { 'id=' : + this.value },

                    success: function (data) {
                            $('#ficheInfos').show();
                        $('#date').text(data.mois);

                    }


                });
                });


            });

这是我在控制器中的功能

    /**
     * @param Request $request
      * @return mixed
      * @Route("/valide")
     * @Method({"POST"})
     */

      public function ajaxAction(Request $request): Response
      {

    if (!$request->isXmlHttpRequest()) {
        return new JsonResponse(array('message' => 'You can access to this 
    url with ajax only'), 400);
    }

    $em = $this->getDoctrine()->getManager();
    $id = $request->request->get('id');
    $moisAnne = $em->getRepository("AppBundle:FicheFrais")->getMoisDispo($id);

    $response = new Response(json_encode(array(

        'mois' => $moisAnne

    )));



    $response->headers->set('Content-Type', 'application/json');
    /* la r�ponse doit �tre encod�e en JSON ou XML, on choisira le JSON
       * la doc de Symfony est bien faite si vous devez renvoyer un objet         *
       */


    new Response(json_encode($response));
    return $response;


}

这是我的SQL函数

public function getMoisDispo($idUser)
{

    $sqlReq = "SELECT DISTINCT moisAnne FROM fiche_frais WHERE idUtilisateur =' .$idUser. '";

    $db= $this->getEntityManager()->getConnection()->prepare($sqlReq);
    $db->execute([]);
    return $db->fetchAll();

}

我正在等待的重新加载全部日期的数据应通过用户ID加载到第二个列表中

1 个答案:

答案 0 :(得分:0)

$('#visiteurSelectionne').on('change', function() {
		console.log("Selected value is " + $(this).val());
    $.ajax({
        url: './valide',
        type: 'POST',
        dataType: 'json',
        data: {
            'id': $(this).val()
        },
        success: function(data) {}
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select style="color: orangered;" id="visiteurSelectionne" class="zone">
        <option disabled selected value="0">Selectionnez un visiteur</option>
        <option value="val-1">val-1</option>
        <option value="val-2">val-2</option>
        <option value="val-3">val-3</option>
    </select>
    <label class="titre">Mois :</label>
    <select style="color: orangered;" id="selectMoisDispo" class="zone">
        <option disabled selected value="0" class="date">Selectionnez une date</option>
    
    </select>