Jump to content
Fórum Script Brasil

Search the Community

Showing results for tags 'php'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Não sei o que fazer, sou novo em programação, então fica difícil. alguma sugestao?
  2. Boa tarde Não estou familiarizado com WSDL Trata-se de uma empresa de logistica com cotação online Gostaria de uma ajuda, se possível, para acessar as informações usando PHP https://ssw.inf.br/ws/sswColeta/index.php?wsdl Muito obrigado <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:sswinfbr.sswColeta" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:sswinfbr.sswColeta"> <types> <xsd:schema targetNamespace="urn:sswinfbr.sswColeta"> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/> </xsd:schema> </types> <message name="coletarRequest"> <part name="dominio" type="xsd:string"/> <part name="login" type="xsd:string"/> <part name="senha" type="xsd:string"/> <part name="cnpjRemetente" type="xsd:string"/> <part name="cnpjDestinatario" type="xsd:string"/> <part name="numeroNF" type="xsd:string"/> <part name="tipoPagamento" type="xsd:string"/> <part name="enderecoEntrega" type="xsd:string"/> <part name="cepEntrega" type="xsd:integer"/> <part name="solicitante" type="xsd:string"/> <part name="limiteColeta" type="xsd:dateTime"/> <part name="quantidade" type="xsd:integer"/> <part name="peso" type="xsd:decimal"/> <part name="observacao" type="xsd:string"/> <part name="instrucao" type="xsd:string"/> <part name="cubagem" type="xsd:decimal"/> <part name="valorMerc" type="xsd:decimal"/> <part name="especie" type="xsd:string"/> <part name="chaveNF" type="xsd:string"/> <part name="cnpjSolicitante" type="xsd:string"/> <part name="nroPedido" type="xsd:string"/> </message> <message name="coletarResponse"> <part name="return" type="xsd:string"/> </message> <portType name="sswinfbr.sswColetaPortType"> <operation name="coletar"> <documentation>Realiza o pre cadastro de coleta no sistema da transportadora.</documentation> <input message="tns:coletarRequest"/> <output message="tns:coletarResponse"/> </operation> </portType> <binding name="sswinfbr.sswColetaBinding" type="tns:sswinfbr.sswColetaPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="coletar"> <soap:operation soapAction="urn:sswinfbr.sswColeta#coletar" style="rpc"/> <input> <soap:body use="encoded" namespace="urn:sswinfbr.sswColeta" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body use="encoded" namespace="urn:sswinfbr.sswColeta" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <service name="sswinfbr.sswColeta"> <port name="sswinfbr.sswColetaPort" binding="tns:sswinfbr.sswColetaBinding"> <soap:address location="https://ssw.inf.br/ws/sswColeta/index.php"/> </port> </service> </definitions>
  3. Olá. Por favor pessoal gostaria de uma ajuda em um código. Se o usuário colocar uma determinada data no campo 'Data Processo' e essa data for inferior ou igual a Data de Defesa ( que já está na tela), marcar o radio button Tempestivo caso contrário Intempestivo. function VerificarTempestividade(procDTPROCESSO, vecto) { var dtProcesso = new Date(procDTPROCESSO); var dtVecto = new Date(item.vecto); var radioTempestivo = document.getElementById("procCONDICAOT"); var radioIntempestivo = document.getElementById("procCONDICAOI"); if (dtProcesso <= dtVecto) { radioTempestivo.checked = true; radioIntempestivo.checked = false; } else { radioTempestivo.checked = false; radioIntempestivo.checked = true; } } {if $dataProcesso == 'M'} <div class="form_campo"> <div id="campo_tit" class="campo_tit">Data do Processo:</div> <div id="campo_edi"> <input id="procDTPROCESSO" name="procDTPROCESSO" value="{$procDTPROCESSO}" type="text" style="width:110px" title="Data do Processo" maxlength="10" onkeypress="admtjs_mascara(this, admtjs_mascara_data)" onblur="admtjs_validamascara(this, admtjs_mascara_data, false)" onchange="VerificarTempestividade(this.value, '{$vecto}')" accept="validar"/> </div> </div> {/if}
  4. A resposta para essa pergunta é: SIM O conceito de object literal (objeto literal) é muito famoso no JS e consiste em criar um objeto que possui propriedades e, claro, valores associados a essas propriedades. No exemplo a seguir, poderemos ver como esse recurso funciona no JS: const programador = { nome: "Fábio Akita", linguagem: "Ruby" }; Agora posso consultar, alterar ou até mesmo executar propriedades e métodos desse meu objeto. Exemplificando a utilização do meu objeto literal: console.log(`Olá, ${programador.nome}`); # saída: Olá, Fábio Akita Esse recurso é amplamente utilizado no mundo JS. Assista uma instrução switch ser substituída por um object literal: let day; switch (new Date().getDay()) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thursday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; break; default: throw new Error("Hey! We have only 7 days in the week"); } console.log(`What day of the week is today? ${day}`); Substituindo por um object literal: const dayOfTheWeek = { 0: "Sunday", 1: "Monday", 2: "Tuesday", 3: "Wednesday", 4: "Thursday", 5: "Friday", 6: "Saturday", }; console.log( `What day of the week is today? ${dayOfTheWeek[new Date().getDay()]}` ); Legal, né!? Mas daí você me pergunta, como posso replicar isso no php? Bom, o php não possui o recurso de object literal, mas calma, pois podemos alçar o mesmo resultado de duas maneiras: 1° por meio dos arrays associativos. 2° por meio da estrutura condicional match. 1° maneira: $dayOfTheWeek = [ 0 => "Sunday", 1 => "Monday", 2 => "Tuesday", 3 => "Wednesday", 4 => "Thursday", 5 => "Friday", 6 => "Saturday", ]; $today = date('w'); // Obtém o dia da semana atual (0 para domingo, 1 para segunda, etc.) echo "What day of the week is today? " . $dayOfTheWeek[$today]; 2° maneira: $today = date('w'); // Obtém o dia da semana atual (0 para domingo, 1 para segunda, etc.) $todayInt = $today + 0; // no caso do match precisamos informar um int, para que a associação seja feita corretamente $dayOfTheWeek = match($todayInt) { 0 => "Sunday", 1 => "Monday", 2 => "Tuesday", 3 => "Wednesday", 4 => "Thursday", 5 => "Friday", 6 => "Saturday", }; echo "What day of the week is today? " . $dayOfTheWeek; Bem, esse foi o tutorial, tmjt rapaziada!
  5. Olá, tudo bem? Estamos em busca de uma parceria para desenvolvimento de um site completo, vou passar um resumo do que seria a ideia: A ideia é criar um site agregador de leilões de imóveis. Hoje existem diversos sites de leiloeiros no mercado, com diversas ofertas, e nossa ideia é criar um site que consiga buscar essas ofertas desses sites e mostrar para os nossos clientes em uma única plataforma. A ideia de captação dessas ofertas seria através do web scrapping, trazendo alguns dados simples como: Nome (ex: Casa, apartamento, lote, etc) Endereço Área Valor (as vezes tem valor de praça 1 e valor de praça 2, pode trazer sempre o menor) Valor de avaliação (se tiver) Link da página da oferta Link da imagem de capa da oferta Essas informações alimentariam nosso site e seriam mostradas como um card de oferta, semelhante a um ecommerce ou os próprios sites de leilões e ao clicar sobre o card, o cliente é direcionado diretamente para a página do leiloeiro. Esse site será vendido em formato de assinatura, então teremos controle de login e somente os assinantes terão acesso a busca dos imóveis e ofertas. Para essas buscas vamos precisar dos filtros de buscas com os itens que citei acima. Hoje temos uma hospedagem na Hostinger com nosso próprio domínio e a ideia é utilizar um subdomínio para esse novo site. Para a parte de login e checkout de pagamento temos parceria com a Hotmart, onde o produto será vendido, então acredito que podemos utilizar essa parte via API com eles. Também pretendemos deixar esse programa de scrapping e integração com o site rodando de forma automática em um servidor na nuvem, com atualização das buscas e banco de dados a cada 3 dias, com as manutenções ocorrendo às 3:00h. Vou passar abaixo alguns exemplos de sites de leiloeiros e de um sites agregadores já existentes. Exemplo de site de leiloeiros: https://www.pestanaleiloes.com.br/ https://www.superbid.net/ https://app.centralsuldeleiloes.com.br/ https://www.portalzuk.com.br/leilao-de-imoveis Exemplo de site agregador: https://www.leilaoimovel.com.br/ https://www.procurabem.com.br/ Acredito que seja isso, qualquer dúvida ou se precisarem de mais informações, fico à disposição. Para contato para fazermos os orçamentos podem ser feitos por aqui ou diretamente no email. Att. Rodolfo
  6. Preciso gerar um excel com várias sheets através de php/mysql e estou usando o phpspreadsheet. O objetivo é indicar um ou mais ID, e em cada sheet no excel, colocar a informação desses IDs, exemplo: ID1 = sheet1, ID2 = sheet2, etc... Este é o script que montei. Se mudar a array para variavel e retirar o foreach, consigo gerar o arquivo de excel apenas com um ID e uma sheet. Se mudo para vários IDs com array e foreach gera o arquivo excel mas com uma sheet em branco. O que precisa ser ajustado aqui? <?php include ("conexao_banco.php"); require ("vendor/autoload.php"); use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $array = array('A0001','A0002'); $date1 = '2023-08-14'; $date2 = '2023-08-15'; foreach($array as $account){ $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle($account); $sql = $conn->prepare("call procedure (?, ?, ?)"); $sql->bind_param("sss", $conta, $date1, $date2); $sql->execute(); $res = $sql->get_result(); $i = 1; while($row = $res->fetch_assoc()){ $sheet->setCellValue("A$i", $row["IDACCOUNT"]); $sheet->setCellValue("B$i", $row["DATE1"]); $sheet->setCellValue("C$i", $row["DATE2"]); $sheet->setCellValue("D$i", $row["COLUMN1"]); $sheet->setCellValue("E$i", $row["COLUMN2"]); $i++; } $sheet->insertNewRowBefore(1, 1); $sheet->setCellValue("A1", "IDACCOUNT"); $sheet->setCellValue("B1", "DATE1"); $sheet->setCellValue("C1", "DATE2"); $sheet->setCellValue("D1", "COLUMN1"); $sheet->setCellValue("E1", "COLUMN2"); // for bold on header $highestColumn = $sheet->getHighestColumn(); $sheet->getStyle('A1:E1:' . $highestColumn . '1' )->getFont()->setBold(true); } // saving file $filename = "teste.xlsx"; $writer = new Xlsx($spreadsheet); $writer->save($filename); ?>
  7. Em 2020 comecei a estudar o PHP, e lá eu conheci o mysqli que o PHP usa para trabalhar com o banco de dados do MySQL. Em 2022 comecei a estudar o Laravel, e lá eu conheci o Eloquent, ele faz a mesma coisa que o mysqli do PHP mas usa uma gramática bem mais robusta, uma verdadeira obra de arte. O problema é: quantas vezes eu posso usar o mysqli ou o Eloquent? Como eu apanho muito para trabalhar com vetores, eu pedi para o mysqli ou o Eloquent olhar três vezes o banco de dados, uma vez para consultar os lançamentos do dia, outra vez para somar os débitos daquele dia e mais uma vez para consultar a soma dos créditos daquele dia. Eu acordei de madrugada, e decidi estudar os vetores do PHP, e lá vi array_sum, array_filter, array_column. Foram várias tentativas e erros e nenhuma deu certo, mas finalmente consegui achar uma solução: <?php // tbdiario (docto,lcto,dia,contad,contac,valor,historico) // docto : auto_increment, primary_key $mysqli=new mysqli("localhost","root","","laravel"); $query=$mysqli->query("select * from tbdiario where dia='2023-07-22'"); $extrato=$query->fetch_all(MYSQLI_ASSOC); $debito=[]; $credito=[]; foreach($extrato as $key=>$sub){ if($sub['contad']){$debito[]=$sub['valor'];} if($sub['contac']){$credito[]=$sub['valor'];}} var_dump(array_sum($debito),array_sum($credito)); E no Laravel, ficou assim: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\tbdiario; use App\Models\tbsupervariavel; use Auth; class DiarioController extends Controller { public function extrato(Request $request) { if($request->input('dia')){ tbsupervariavel::where('codsuper',Auth::id())->update(['dia'=>$request->input('dia')]);} $dia=tbsupervariavel::where('codsuper',Auth::id())->value('dia'); $extrato=tbdiario::where('dia',$dia)->get(); $debito=[]; $credito=[]; foreach($extrato->toArray() as $key=>$sub){ if($sub['contad']){$debito[]=$sub['valor'];} if($sub['contac']){$credito[]=$sub['valor'];}} $somad=array_sum($debito); $somac=array_sum($credito); return view('diario',compact('extrato'),['somad'=>$somad,'somac'=>$somac]);} } Se alguém sugerir usar a função soma no Collections do Laravel, eu tentei por dois anos e não consegui.
  8. Olá Galera, tudo bem? - Então estava com um problema com meu notebook, aonde precisei de formatar ( Salvei o Banco de Dados e a Pasta HTDOCS), após isso instalei novamente o XAMPP versão mais atual, verifiquei que quando rodo minha apliacação estou tendo erros no arquivos que contem JS, e saiu um pouco a formatação fora do padrão. - O mais interessante os mesmo arquivos que tenho de backcup da HTDOCS, consigo subir e abrir pelo mesmo computador, pelo mesmo navegador ( ele estando no serviço de hospedagem). - Será que posso ter problemas com a versão do XAMPP, Apache algo assim, pois os mesmo arquivos roda no Servidor Online, mas tenho alguns erros rodando pelo localhost.
  9. <script> function alterar(){teste.value=teste.value.replace(',','.')} </script> <form onsubmit=alterar()> <input id=teste name=teste value=0,97> <input type=submit> </form> <?php if(isset($_GET['teste'])){echo "<br> Valor=".$_GET['teste'];}
  10. Já tem algumas horas que eu estou batendo cabeça nessa situação, e não consegui... Seguinte, tenho dois selects que serão preenchidos com opções do banco de dados, um de categoria e outro de afiliação: adicionar-produto.blade.php <div class="input-group mb-3"> <label class="input-group-text" for="categoria">Categoria</label> <select class="form-select" id="categoria" data-parsley-required="true" name="categoriaProdutoID"> <option disabled selected>Escolha uma...</option> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option> </select> </div> <div class="input-group mb-3"> <label class="input-group-text" for="afiliacao">Afiliação</label> <select class="form-select" id="afiliacao" data-parsley-required="true" name="afiliacaoID"> <option disabled selected>Escolha uma...</option> @foreach ($afiliados as $afiliado) <option value="{{ $afiliado->afiliacaoID }}">{{ $afiliado->nomeAfiliacao }}</option> @endforeach </select> </div> No segundo eu já fiz ele para fazer a iteração, criei o controller e model, porém o Laravel me retorna com o erro de variável não definida. Já tentei fazer com ->with('afiliados', $afiliados), mas o Laravel diz que não existe essa variável. A situação tá assim: AfiliadoController.php (Controller) class AfiliadoController extends Controller { public function todosAfiliados(){ $afiliados = Afiliado::all(); return view('produtos.adicionar')->with('afiliados', $afiliados); } } Afiliado.php (Model) class Afiliado extends Model { use HasFactory; } Nota: Eu tenho uma página chamada adicionar.blade.php e ela é estendida através de um @include('components/adicionar-produto'), onde lá está o formulário que vai receber o foreach, da seguinte forma... <section class="section"> <div class="card"> <div class="card-body"> <p class="text-subtitle text-muted">Nesta página você poderá um novo produto a listagem de produtos disponíveis no site.</p> @include('components/adicionar-produto') </div> </div> </section> A minha dúvida é, porque eu não consigo fazer com que o Laravel enxergue a variável mesmo passando ela com ->with()? Aqui está o github do projeto: https://github.com/ElisameAraujo/adminNaturezaCura
  11. <?php $json=json_decode('{"parc":10,"parc1":20}'); $parc=isset($json->parc) ? $json->parc : 0; $parc1=isset($json->parc1) ? $json->parc1 : 0; $parc2=isset($json->parc2) ? $json->parc2 : 0; $parc3=isset($json->parc3) ? $json->parc3 : 0; echo "A soma das parcelas deu ".$parc+$parc1+$parc2+$parc3; Se não houver nenhuma parcela, a primeira instrução terá que ser escrita assim: $json=json_decode(''); É possível melhorar esse código?
  12. Esse código não funciona: <html> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous"> <div style='width:200;margin:0 auto'> <table class="table table-striped"> <tr class=text-danger><td>Vermelho <tr class=text-danger><td>Vermelho <tr class=text-danger><td>Vermelho </table></div> Eu não queria jogar fora o Bootstrap e tentar montar uma tabela zebrada através do PHP, a manutenção do código é muito trabalhosa. A minha solução foi esquecer que estamos na era do HTML 5, e usei o marcador <font>. O VS Code alerta que o marcador não está previsto no HTML 5, mas foi o único jeito que encontrei para resolver o problema. Ou tem outra solução? <html> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous"> <div style='width:200;margin:0 auto'> <table class="table table-striped"> <tr><td><font color=red>Vermelho <tr><td><font color=red>Vermelho <tr><td><font color=red>Vermelho </table></div>
  13. O meu banco de dados já tem mais de 1.000 produtos, isso é muita coisa. O meu programa Orçamento tem condições de criar um novo produto, mas ao invés de criar um novo produto, eu decidi descontinuar um produto. Por exemplo, eu tenho um produto chamado beringela brasileira e outro chamado de beringela japonesa. Como eu não sei como assar uma beringela brasileira, eu decidi não mais comprar. Além de ser novato na programação eu também sou novato na cozinha, mas recentemente eu encontrei um novo produto chamado nigagori ou mais precisamente pepino japonês. Ao invés de criar um produto novo com o nome de nigagori, eu decidi usar o código da beringela brasileira. O meu programa Orçamento é capaz de mudar o nome, o custo, a unidade, o código de barra, a localização, o código utilizado pelo fornecedor, o NCM (o código de produtos do Mercosul), mas ele não é capaz de mudar a história do produto. Até ontem eu entrava no banco de dados e mudava a história do produto para um produto que eu chamei de Descontinuado. Isso é fácil de fazer pelo programa PhpMyAdmin. Mas ontem eu não consegui logar no PhpMyAdmin. Isso já aconteceu umas cinco vezes comigo nesses últimos três meses, quando decidi hospedar o meu banco de dados no Hostinger. Pensando nesse problema, eu criei um novo código chamado descontinuar.php, ele ficou assim <?php include('menu.php'); echo "<form>Digite o código do produto<input name=codprod onchange=submit()></form>"; if(isset($_GET['codprod'])){ $codprod=$_GET['codprod']; $query=$mysqli->query("select * from tbprod where codprod=$codprod"); $produto=$query->fetch_assoc()['prod']; echo $produto."<br>"; echo "<form>Confirme a descontinuição do produto de código <input name=confirma type=submit value=$codprod></form>";exit;} if(isset($_GET['confirma'])){ $codprod=$_GET['confirma']; $query=$mysqli->query("update tbhistprod set codprod=1854 where codprod=$codprod"); $query=$mysqli->query("update tbprod set prod=' Disponivel' where codprod=$codprod"); echo "<input type=submit value=Continuar onclick=location.replace('descontinuar.php')";} O programa é bem simples e agora o meu projeto Orçamento também pode descontinuar o produto. Esse é um código PHP, agora preciso também traduzir em Laravel que está em fase de teste. Agora, a minha preocupação é se eu não conseguir logar no meu projeto. Eu não tenho nenhum plano de contigência se a Hostinger me deixar na mão.
  14. Boa tarde pessoa, tudo certo? espero que sim bom, eu fazendo um projetinho com laravel, mas na parte de estilizar algumas coisas eu estou me perdendo, já to a 5 dias direto tentando mas não consigo, já tentei a doc oficial, youtube, forums, stack overflow e tb programar junto com o chatGpt, dai resolvi perguntar aqui porque realmente, minhas opcoes esgotaram. sobre o projeto eu tenho essa tela eu queria poder tirar o nome edit do lado dos 3 pontinhos e colocar como nome da coluna, mas não estou conseguindo, eu tb queria colocar um icone do lado de cada nome da coluna, tb queria por um filtro por data, onde aparecesse um calendario. enfim, meu problema esta sendo estilizar as coisas e algumas funcionalidades, eu vou passar uma outra tela, mostrando como eu queria que ficasse logo abaixo, lembrando que eu não estou usando css, html e etc, estou usando apenas o Filament. vou passar aqui tb o meu arquivo UserResource, que e o arquivo que constroi a primeira tela: UserResource <?php namespace App\Filament\Resources; use App\Filament\Resources\UserResource\Pages; use App\Filament\Resources\UserResource\RelationManagers; use Filament\Tables\Actions\ActionGroup; use Filament\Tables\Actions\EditAction; use App\Models\User; use Filament\Tables\Actions\Position; use Filament\Forms; use Filament\Resources\Form; use Filament\Resources\Resource; use Filament\Resources\Table; use Filament\Tables; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; class UserResource extends Resource { protected static ?string $model = User::class; protected static ?string $navigationIcon = 'heroicon-o-collection'; public static function form(Form $form): Form { return $form ->schema([ Forms\Components\TextInput::make('name') ->required() ->maxLength(255), Forms\Components\TextInput::make('email') ->email() ->required() ->maxLength(255), Forms\Components\DateTimePicker::make('email_verified_at'), Forms\Components\TextInput::make('password') ->password() ->required() ->maxLength(255), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('name'), Tables\Columns\TextColumn::make('email'), Tables\Columns\TextColumn::make('email_verified_at') ->dateTime(), Tables\Columns\TextColumn::make('created_at') ->dateTime(), Tables\Columns\TextColumn::make('updated_at') ->dateTime(), ]) ->filters([ // ]) ->actions([ EditAction::make('Editar'), Tables\Actions\DeleteAction::make(), ]) ->bulkActions([ Tables\Actions\DeleteBulkAction::make(), ]); } protected function getTableActions(): array { return [ Tables\Actions\ActionGroup::make([ Tables\Actions\ViewAction::make(), Tables\Actions\EditAction::make('edit', 'Editar'), Tables\Actions\DeleteAction::make(), ])->dropdown(), ]; } protected function getTableActionsPosition(): ?string { return Position::BeforeCells; } public static function getPages(): array { return [ 'index' => Pages\ManageUsers::route('/'), ]; } }
  15. Nem tudo que parece json no PHP é considerado como válido. Depois de dois anos finalmente consegui fazer um json que parece inválido se tornar válido: <?php $fator="{'cod':520,'conv':0.1}"; var_dump($fator); $obj=json_decode(str_replace("'",'"',$fator)); var_dump($obj);
  16. Boa tarde pessoal! Preciso de ajuda para desenvolver uma lógica. Quero disparar 1 mil e-mails/dia (100 por hora - das 8hr as 18hrs) e vou usar um select limit 100 para buscar os registros no meu banco de dados. Acontece que eu não posso repetir os registros e não vou saber quais e-mails já foram enviados. Então, eu preciso pegar os 100 primeiros registros as 8hrs, depois do 101 ao 200 as 09hrs...e assim por diante Eu poderia estabelecer isso, por ex, por dia, sendo dia 21 todos os registros que começarem com 21, dia 22 todos os registros que começarem com 22, e assim por diante. O problema é que quando começar outro mês, vai repetir os registros, e eu gostaria de deixar automático até terminarem todos os registros da tabela. Alguém tem uma ideia de como eu poderia fazer isso, sem gravar os envios? Por favor! Obrigado
  17. Pessoal como faço uma condição para evitar ter o mesmo usuário cadastrado mais de uma vez no BD?
  18. Preciso percorrer esse vetor do vetor para exibir corretamente ID e Descrição. Do jeito que está abaixo, ele esta sequencial. $listaJuntasCadastradas = $modelProcesso->listaJuntasCadastradas(); foreach ($listaJuntasCadastradas as $key => $value) { $listaJuntasCadastradas[$key] = $key . ' - ' . $value['JUNTA_DESCRICAO']; }
  19. Seguinte, Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, porém quando faço o submit destes dados, ele atualiza apenas a última linha desse processo. O script que traz as faixas: <tr> <form class="form-group" method="post" action="includes/funcoes/atualizar-faixas.php"> <?php while($sqlSelect = mysqli_fetch_assoc($result)) { ?> <td><input type="text" value="<?php echo $sqlSelect['trackNumero'] ?>" class="form-control" name="trackNumero"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTitulo'] ?>" class="form-control" name="trackTitulo"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTraducao'] ?>" class="form-control" name="trackTraducao"></td> <td><input type="text" value="<?php echo $sqlSelect['trackID'] ?>" class="form-control" name="trackID" readonly></td> <td><input type="text" value="<?php echo $sqlSelect['albumID'] ?>" class="form-control" name="albumID" readonly></td> </tr> <?php } ?> <tr><a href="https://google.com"><button name="cancelar" id="cancelar" class="btn btn-danger mb-3 mr-1" type="button"> <i class="fa-solid fa-arrow-left"></i> Voltar</button></a></tr> <tr><button name="update" id="update" class="btn btn-success mb-3" type="submit" value=""><i class="fa-solid fa-arrow-up-from-bracket"></i> Atualizar</button></tr> </form> E esse é o resultado do código acima: E este é o código que uso pra fazer o UPDATE no banco de dados: <?php require_once "../db/albuns.php"; if(isset($_POST['update'])){ $trackNumero = $_POST['trackNumero']; $trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']); $trackTraducao = $_POST['trackTraducao']; $trackID = $_POST['trackID']; $albumID = $_POST['albumID']; $sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID"; if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){ //var_dump($sqlUpdate); header("location: ../../albuns.php?update=sucesso"); /*$sucesso = "<div class='alert alert-success text-white' role='alert'> Dados atualizados com sucesso! </div>";*/ } else { echo "Ocorreu um erro ao atualizar os dados"; /*$erro = "<div class='alert alert-danger' role='alert'> Não foi possível atualizar os dados do pedido. </div>";*/ } } ?> Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.
  20. Ola pessoal. Tenho esse código abaixo e não consigo realizar a condição para enviar todo 10º dia útil de cada mês, por exemplo: vai ter uma rotina que no 10º dia útil vai enviar um email e dentro desse código abaixo, tenho que por uma outra função que fiz, que é a de email. function EnvioDeEmail(pParametros in varchar2) return boolean as RET BOOLEAN; DIAUTIL DATE; begin PCK_PROCESSAMENTO.LOG('Verifica para gerar notificações'); PCK_PROCESSAMENTO.LOG('Orgao: ' || PCK_PROCESSAMENTO.GETORGAO); PCK_PROCESSAMENTO.LOG('Tipo: ' || PCK_PROCESSAMENTO.GETTIPO); SELECT TRUNC(FN_DIA_UTIL_CORRIDO(PCK_PROCESSAMENTO.GETORGAO, CURRENT_DATE, 0)) INTO DIAUTIL FROM DUAL; --PEN;GERACAO:GERARLOTES;DTBASECALC:24/02/2023 IF DIAUTIL = TRUNC(CURRENT_DATE) THEN PCK_PROCESSAMENTO.LOG('Processando. É dia útil: ' || TO_CHAR(DIAUTIL, 'DD/MM/YYYY'));
  21. Estou com uma aplicação PHP que lista, cadastra e também deleta múltiplos produtos. O problema é que a remoção dos produtos não está funcionando, pois o form não é enviado ao PHP (não chega na superglobal $_POST ou $_REQUEST). O que estou tentando fazer é que o id dos produtos seja enviado ao PHP para ser tratado no controller para fazer a remoção em massa dos produtos selecionados. O que acontece é que quando faço o submit do form, o log do php -S mostra que fez uma request, com o código 302. Daí nenhum dado é enviado. Olhando na aba Network do navegador lá no Inspecionar Elemento, o payload mostra que até consegue selecionar os ids dos respectivos inputs checkbox, porém não são enviados ao PHP. products-list.php: <?php $this->layout('layout'); ?><header class="bg-dark"> <nav class="navbar"> <h1 id="page_name"><a href="/">Product List<span>.</span></a></h1> <ul class="navbar-nav flex-row"> <li class="nav-item"> <a id="product_adder" class="nav-link" href="/add-product">Add product</a> </li> <li class="nav-item"> <button class="btn btn-danger" id="submit-button" form="delete_form" > Mass Delete </button> </li> </ul> </nav> </header> <main> <form action="" id="delete_form" method="POST" enctype="multipart/form-data"> <div class="row w-100 mx-0 justify-content-center"> <?php foreach($productList as $product): ?> <div class="card mx-2 mt-3" style="width: 18rem;"> <div class="card-body mt"> <input type="checkbox" name="deleteId[]" value=<?= $product['id'];?> > <ul class="list-group list-group-flush"> <li class="list-group-item text-center"><?= $product['sku']; ?></li> <li class="list-group-item text-center"><?= $product['name']; ?></li> <li class="list-group-item text-center"><?= $product['price']; ?></li> <li class="list-group-item text-center"><?= $product['attribute']; ?></li> </ul> </div> </div> <?php endforeach; ?> </div> </form> </main> script.js (para fazer o envio do form) : $(function () { selectInputCheckboxValues(); }); function selectInputCheckboxValues() { $("#delete_form").submit(function (event) { event.preventDefault(); const options = []; $("input[type='checkbox']:checked").each(function () { options.push($(this).val()); }); const optionsChecked = options; console.log(optionsChecked); $.ajax({ url: "/delete", type: "POST", data: { deleteId: optionsChecked }, success: function (response) { console.log(response); }, }); }); } index.php: <?php require_once __DIR__ . '/../vendor/autoload.php'; $config = require_once __DIR__ . '/../credentials.php'; $routes = require_once __DIR__ . '/../config/routes.php'; /** @var \Psr\Container\ContainerInterface $diContainer */ $diContainer = require_once __DIR__ . '/../config/dependencies.php'; $pathInfo = $_SERVER['PATH_INFO'] ?? '/'; $httpMethod = $_SERVER['REQUEST_METHOD']; $key = "$httpMethod|$pathInfo"; if (array_key_exists($key, $routes)) { $controllerClass = $routes[$key]; $controller = $diContainer->get($controllerClass); } $psr17Factory = new \Nyholm\Psr7\Factory\Psr17Factory(); $creator = new \Nyholm\Psr7Server\ServerRequestCreator( $psr17Factory, // ServerRequestFactory $psr17Factory, // UriFactory $psr17Factory, // UploadedFileFactory $psr17Factory // StreamFactory ); $request = $creator->fromGlobals(); $response = $controller->handle($request); http_response_code($response->getStatusCode()); foreach ($response->getHeaders() as $name => $values) { foreach ($values as $value) { header (sprintf('%s: %s', $name, $value), false); } } echo $response->getBody(); routes.php: <?php use App\Product\Controller\{ ListProductController, ProductFormController, NewProductController, DeleteProductController, }; return [ 'GET|/' => ListProductController::class, 'GET|/add-product' => ProductFormController::class, 'POST|/add-product' => NewProductController::class, 'POST|/delete' => DeleteProductController::class, ];
  22. Pessoal bom dia, alguém conhece alguma Biblioteca para agrupar vários arquivos ( .doc, .xls, .jpg, .pdf ) em um unico arquivo pdf? Eu tenho uma tela onde o usuario faz upload de arquivos mas é preciso agrupa-los em um unico arquivo .pdf. alguém sabe alguma biblioteca que faz isso? Obrigado.
  23. Olá amigos. Estou tentando criar um ficheiro PDF a partir de uma tabela da BD. Para isto estou usando FPDF. Já consegui criar a tabela, mas precisava que após 25 linhas, fosse gerada uma nova página que continuasse com a impressão dos dados que vêm da tabela. Com o código que tenho neste momento a tabela é criada, mas após a linha 25 fica uma linha por página. Segue o meu código: <?php // Require composer autoload require '../pdf/fpdf.php'; $db = new PDO('XXXXXXXXXXXXXXXXXXXXXXXXX); class myPDF extends FPDF { public function header() { $db = new PDO(XXXXXXXXXXXXXXXXXXXXXX); $group = $db->query('select * from tbl_a WHERE ida=' . $_GET['idg']) ; $g2 = $group->fetch(PDO::FETCH_OBJ); $this->Image('../fimg/img.png', 10, 6, 50); $this->SetFont('arial', 'B', 16); $this->Cell(200, 25, 'TEXT', 0, 0, 'C'); $this->Ln(10); $this->Cell(200, 25, mb_convert_case(base64_decode($g2->gnome), MB_CASE_TITLE, 'UTF-8'), 0, 0, 'C'); $this->Ln(30); } public function footer() { $this->SetY(-10); $this->Image('../fimg/img2.png', 128, 265, 70); $this->SetFont('arial', '', 8); $this->Cell(0, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, 'C'); } public function headerTable() { $this->SetFont('arial', 'B', 11); $this->Cell(10, 10, 'No.', 1, 0, 'C'); $this->Cell(90, 10, 'Name', 1, 0, 'C'); $this->Cell(40, 10, 'PID', 1, 0, 'C'); $this->Cell(25, 10, 'Valid', 1, 0, 'C'); $this->Cell(25, 10, 'Birthday', 1, 0, 'C'); $this->Ln(); } public function viewtable($db) { $this->SetFont('arial', '', 10); $stmt = $db->query('select * from tbl2 WHERE id2=' . $_GET['idg']); $i = 1; while ($data = $stmt->fetch(PDO::FETCH_OBJ)) { $this->Cell(10, 8, $i, 1, 0, 'C'); $this->Cell(90, 8, mb_convert_case(base64_decode($data->nomegel), MB_CASE_TITLE, 'UTF-8'), 1, 0, 'L'); $this->Cell(40, 8, base64_decode($data->idcardgel), 1, 0, 'C'); $this->Cell(25, 8, $data->datavalidadegel, 1, 0, 'C'); $this->Cell(25, 8, $data->dnascimentogel, 1, 0, 'C'); $this->Ln(); if ($i>24){ $this->AddPage('P', 'A4', 0); }; $i++; } } } $pdf = new myPDF(); $pdf->AliasNbPages(); $pdf->AddPage('P', 'A4', 0); $pdf->headerTable(); $pdf->viewtable($db); $pdf->Output("List.pdf","I"); Desde já o meu obrigado. NOTA: Os dados do PDO foram ocultados e os nomes das tabelas e dos campos foram alterados, por razões de segurança.
  24. Como faço para listar placas cadastradas pertencentes a um determinado email quando clico em 'Ver', como nas imagens:
×
×
  • Create New...