Ir para conteúdo
Fórum Script Brasil
  • 0

Modal de gambiarra


Frank K Hosaka

Pergunta

O <flux:modal> não funcionou comigo, acredito que ele só vai funcionar se eu licenciar o flux, mas não tenho certeza.

O JavaScript funciona no Laravel 12 Livewire, mas eu não consigo fazer funcionar a classe XMLHttp nesse código:

<script>
    function atualizar(custoAtual, custoAnterior, codprod) {
        confirma = confirm("Atualizar?\ncusto atual: " + custoAtual + "\ncusto anterior: " + custoAnterior);
        if (confirma) {
            xmlhttp = new XMLHttpRequest()
            url = "nfCusto"
            formData = new FormData()
            formData.append('custoAtual', custoAtual)
            formData.append('codprod', codprod)
            xmlhttp.open("POST", url, true)
            xmlhttp.send(formData)
            location.replace("nfAtualiza")
        }
    } 
</script>

A minha saída foi apelar para a ignorância, assim:

 

arquivo resources > views > teste.blade.php
@vite(['resources/css/app.css', 'resources/js/app.js'])
<title>Teste</title>
<script>
    function atualizar(custoAtual, custoAnterior, codprod) {
        confirma = confirm("Atualizar?\ncusto atual: " + custoAtual + "\ncusto anterior: " + custoAnterior);
        if (confirma) {
            location.replace("nfCusto?custoAtual="+custoAtual+"&codprod="+codprod)
        }
    }
</script>

custo anterior da maçã <?=$custo?>

<div class="flex w-[300px]">
    <div class="w-[200px]">Custo Atual</div>
    <input onchange="atualizar(this.value,<?=$custo?>,343)" class="border"/>
</div>

Para isso funcionar, tive que inventar moda no arquivo web.php:
 

arquivo routes > web.php
Route::get('nfCusto',[NF::class,'custo']);

Para voltar na página teste.blade.php, fiz mais gambiarra:

arquivo app >  Http > Controllers > NF.php (parcial)
<?php
// ...
function custo(Request $request) { 
        $marg=tbprod::where('codprod',$request->codprod)->value('marg');
        $venda=pvenda($request->custoAtual,$marg); 
        tbprod::where('codprod',$request->codprod)
            ->update(['custo'=>$request->custoAtual,'venda'=>$venda]);
        $class="class='w-[70px] text-right'";
        tbnf::where('codprod',$request->codprod)
            ->update(['custoanterior'=>$request->custoAtual,'class'=>$class]);
        $teste=tbprod::where('codprod',$request->codprod)->value('custo');
        return view('teste',['custo'=>$teste]) ;
    }

Fazer teste é fácil, o meu drama é que o meu arquivo original veio de um download da nota fornecedor, e certamente a minha gambiarra não vai funcionar.
 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

O modal da gambiarra deu certo no meu código principal. Guardei todas as variáveis que foram utilizadas na NFview numa session( ), depois que o JavaScript chama a função custo, a função custo recupera todas as variáveis da session( ) e em seguida invoca a NFview novamente. Isso é um serviço mal feito, mas como ele funciona, vou deixar a suposta solução Livewire para frente. O que eu gostei mesmo é do componente <flux>, a maioria está amarrada no Livewire, mas alguns deles facilitam a codificação no Laravel, principalmente porque o Tailwind não é nada fácil.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,2k
×
×
  • Criar Novo...