Request ajax with Slim

Asked

Viewed 357 times

0

I have a form and the following requisition:

        jQuery('#cadastro').submit(function() {
        var dados = jQuery(this).serialize();
        jQuery.ajax({
            type: "POST",
            url: "/cadastrar",
            data: dados,
            beforeSend(xhr) {
                modalOpen();
            },

            success: function(data) {
                modalContent(data);
            }

        });
        return false;
    });

In my index.php where the application is loaded I have:

$app->post('/cadastrar', function(){      });

How do I intercept this $_POST data in my method within the registration route ?

1 answer

1


The first parameter of the callback when registering the route, is precisely the requisition information.

To capture this information, just pass a variable to have access to request and then use the method getParsedBody or getParsedBodyParam, for example:

$app->post('/cadastrar', function($requets) {

    /**
     * Caso você esteja passando um JSON, use "json_decode" para decodificar
     * Caso você steja passando um XML, use o "SimpleXMLElement" para manipular esse dados
     * Caso você esteja passando um padrão "application/x-www-form-urlencoded"
     *      (é quando você utiliza $("form").serialize(), por exemplo)
     *      utilize o parse_str
     */
    var_dump($requets->getParsedBody());

    /**
     * Você também pode capturar apenas um input e caso o input não exista, retorna um valor padrão
     */
    var_dump($requets->getParsedBodyParam("nome-do-campo", "valor-padrao"));

    /**
     * O getBody() método é preferível se o tamanho da solicitação HTTP recebida for
     * desconhecido ou muito grande para a memória disponível.
     */
    var_dump($requets->getBody());

});

Browser other questions tagged

You are not signed in. Login or sign up in order to post.