1
resposta

Passar variável de Javascript para Laravel

Olá, gostaria de tirar uma dúvida.

Eu estou fazendo uma pequena aplicação em que tenho uma variável em javascript e quero mandar ela para meu controller do laravel para salvá-la no banco de dados, mas não estou conseguindo fazer isso. Como posso passar essa variável do javascript para o laravel via json? E salvar no banco de dados depois no controller?

1 resposta

Oi, Cassio! Tudo bem?

Desculpa a demora por um retorno.

Podemos enviar uma variável do JavaScript para o Laravel via JSON e salvá-la no banco de dados da seguinte forma:

Inicialmente, no nosso JavaScript precisamos fazer uma requisição AJAX para enviar os dados para o Laravel. Para isso, podemos criar um objeto JavaScript que conterá os dados que desejamos enviar para o Laravel. Usaremos então a função fetch() para fazer uma requisição POST para o endpoint que indica caminho correto para o nosso controller do Laravel.

Passaremos como segundo argumento para o fetch() um objeto de configuração que define os detalhes da requisição. Nele, definiremos o método como 'POST' para indicar que estamos enviando dados para o servidor. Somado a isso, definiremos também o objeto headers, que define os cabeçalhos da requisição e o corpo da requisição, que é definido usando o método JSON.stringify() para converter o objeto data em uma string JSON.

Deixaremos então nosso código JavaScript da seguinte forma:

var data = {
  suaVariavel: 'valor da sua variável'
};

fetch('/seu-endpoint-no-laravel', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-CSRF-TOKEN': 'seu-token-de-csrf' // se estiver usando proteção CSRF no Laravel
  },
  body: JSON.stringify(data)
})
.then(response => {
  // Tratar a resposta da requisição aqui
})
.catch(error => {
  // Tratar erros aqui
});

Por fim, no controller do Laravel precisamos receber a requisição, decodificar os dados JSON e salvar a variável no banco de dados, podemos fazer isso seguindo o exemplo abaixo como inspiração:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\SuaModel; // Substitua "SuaModel" pelo nome do seu modelo no Laravel

class SeuController extends Controller
{
    public function salvarDados(Request $request)
    {
        $data = $request->json()->all();

        // Aqui você pode validar os dados recebidos, se necessário

        // Salve os dados no banco de dados usando seu modelo
        $suaModel = new SuaModel;
        $suaModel->suaVariavel = $data['suaVariavel'];
        $suaModel->save();

        // Retorne uma resposta adequada, por exemplo, um código de status 200 para indicar sucesso
        return response()->json(['message' => 'Dados salvos com sucesso'], 200);
    }
}

Espero ter ajudado. Caso tenha alguma dúvida, sinta-se à vontade para comunicar, estou à disposição.

Um forte abraço e bons estudos!

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