1
resposta

Retorno da requisição exibida em um modal

Até o momento estudamos o retorno da requisição em uma view. Mas como funciona isso no caso de um Modal? Por exemplo, este método a seguir:

public function store(Request $request)
{
    //Se não tem credencial
    if(!Auth::attempt($request->only(['email', 'password']))) {
        return redirect()->back()->withErrors(['Usuário ou senha inválidos']);
    }
}

Ele retorna para a view, mas o modal não é exibido. É possível fazer isso?

1 resposta

Olá, Carlos! Espero que esteja tudo bem com você.

Peço desculpas pela demora no retorno a sua mensagem.

No caso de exibir o retorno da requisição em um modal, é possível sim. Você pode utilizar o AJAX para fazer a requisição assíncrona e exibir a resposta no modal.

Aqui está um exemplo de como você pode fazer isso:

public function store(Request $request)
{
    //Se não tem credencial
    if (!Auth::attempt($request->only(['email', 'password']))) {
        if ($request->ajax()) {
            return response()->json(['success' => false, 'message' => 'Usuário ou senha inválidos']);
        } else {
            return redirect()->back()->withErrors(['Usuário ou senha inválidos']);
        }
    }

    if ($request->ajax()) {
        return response()->json(['success' => true, 'message' => 'Login bem-sucedido']);
    } else {
        return redirect()->route('home');
    }
}

No lado do cliente, você precisa lidar com a resposta AJAX e tomar as medidas apropriadas. Aqui está um exemplo usando jQuery:

$.ajax({
    method: 'POST',
    url: '/login',
    data: $('#login-form').serialize(),
    success: function(response) {
        if (response.success) {
            // Exibir mensagem de sucesso ou fazer outras ações necessárias
            alert(response.message);
        } else {
            // Exibir mensagem de erro no modal
            $('#modal-error-message').text(response.message);
        }
    }
});

Nesse exemplo, enviamos uma requisição AJAX para a rota /login com os dados do formulário de login (#login-form). No callback success, verificamos se o login foi bem-sucedido com response.success e exibimos uma mensagem de sucesso ou de erro conforme necessário.

Certifique-se de adaptar o exemplo ao seu código e framework específico, caso esteja usando algo diferente do jQuery ou Laravel.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software