Search code examples
jqueryform-data

Getting POST parameter from Request


I'm using Symfony4 and I'm trying to get POST parameter from Request. Using:

$request = Request::createFromGlobals();
$email = $request->request->get('email');

Give me null but if I do:

$request = Request::createFromGlobals();
var_dump($request->request->all());

I can see that email parameter is setted and has some value. My question is: How can i get that parameter value?

I post a piece of my code here:

/**
 * @Route("/prenota/appuntamento/salva", name="app_habiter_calendario_save", methods={"POST"})
     */
  public function salvaPrenotazione(ValidatorInterface $validator){
     $request = Request::createFromGlobals();
     $entityManager = $this->getDoctrine()->getManager();
     $prenotazioni = new Prenotazioni();
     $clienti = new Clienti();

     $email = $request->request->get('email');
     [...]
}

Screenshot of

$request = Request::createFromGlobals();
var_dump($request->request->all());

enter image description here

The request are made by AJAX with this function. Might be this the reason of the problem?:

function sendMailAjax(form, method, url, outputElement){
  let formData = new FormData(form);
  $.ajax({
    method: method,
    url: url,
    data: formData,
    processData: false,
  }).done(function (result) {
    if(result.message === true) {
      outputElement.css('color', 'green');
      outputElement.text('Inviato');
    }else {
      outputElement.css('color', 'red');
      outputElement.text('Errore');
    }
  });
}

Solution

  • In your AJAX call, change

    let formData = new FormData(form);
      $.ajax({
        method: method,
        url: url,
        data: formData,
    

    to:

    let formData = $("form").serialize();
      $.ajax({
        method: method,
        url: url,
        data: formData,