Как правильно получить параметр отправки с помощью ajax в контроллере Symfony (аннотация)? - PullRequest
0 голосов
/ 21 сентября 2018

Я боролся последние 2 дня, и ни один ответ, который я нашел в интернете, не помог мне.

Я пытаюсь передать данные с помощью ajax на Symfony.проект.Цель состоит в том, чтобы обновить значение ветки.

Итак, я установил ajax-вызов следующим образом:

$searchbar = $("#searchBar");
var btnSearch = document.getElementById("btnRecherche");

btnSearch.onclick = chargeClientsData;

function chargeClientsData()
{
    let searchVal = $("#searchBar").val();
    console.log(searchVal);

    $.ajax({
        url: "{{ path('showIt') }}", // point to server-side PHP script
        dataType: 'json',
        data: {data :  searchVal },
        type: 'POST',
        success: function(data){
            console.log(data);
            $('#monelement').html("test");
        }
    });


}

И я пытаюсь получить его, используя этот контроллер:

/**
 * @route("/showIt}", name="showIt", methods="POST")
 * @param $request
 * @return Response
 */
public function showIt(Request $request){

    var_dump($request);
    if($request->isXmlHttpRequest()){
        $search = $request->query->get('data');
        var_dump($search);
        $response = $this->checkValidRequest($request);
        return $response->setData(['search' => $search ]); // working
    }

    $response = $this->checkValidRequest($request);
    $response->setStatusCode(500);
    return $response;

}

var_dump ($ request) не показывает ни одно из значений, и, конечно, var_dump ($ search) имеют значение NULL.

В twig, $ ("# searchBar");отправьте правильное значение, и я получу успех, но с нулевыми значениями

Есть ли что-то, что я сделал неправильно?

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 сентября 2018

Поскольку вы используете запрос POST, вы можете получить параметр POST в вашем контроллере следующим образом:

$search = $request->request->get('data');

вместо

$search = $request->query->get('data');

, который вы используете в данный момент.Обратите внимание, что $request->query->get('data') используется для метода GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...