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 ✓