Todas Atividades
Atualizada automaticamente
- Hoje
-
Ao invés de trabalhar com duas caixas de combinação, a minha sugestão é trabalhar com apenas um: <?php Class Teste { public $ambiente,$item,$selecionado; function criarTabela() { $mysqli=new mysqli("localhost","root","","teste"); $mysqli->query("drop table if exists tbcomodo"); $mysqli->query("create table tbcomodo (id int auto_increment primary key, ambiente varchar(50) not null)"); $mysqli->query("insert into tbcomodo (ambiente) values ('cozinha'),('sala'),('quarto 1'),('quarto 2'), ('quarto 3'),('quarto 4'),('banheiro'),('churrascaria')"); $mysqli->query("drop table if exists tbservico"); $mysqli->query("create table tbservico (id int auto_increment primary key, id_comodo int,item varchar(45),data datetime)"); $mysqli->query("insert into tbservico (id_comodo,item,data) values (1,'tomada forno','2025-08-25 17:04'), (1,'tomada microonda','2025-08-25 17:04'), (1,'janela pequena','2025-08-25 17:04'), (1,'janela jardim','2025-08-28 17:04'), (2,'janela jardim', '2025-08-28 17:04'), (2,'janela estrada','2025-08-28 17:04'), (2,'tomada aspirador','2025-08-28 17:04'), (2,'tomada tv','2025-08-28 17:04'), (2,'tomada candieiro','2025-08-28 17:04'), (2,'luz principal','2025-08-28 17:04'), (2,'tomada tv','2025-08-28 17:04'), (3,'tomada cama','2025-08-28 17:04')"); } function selecionado($ambiente) { $this->selecionado=$ambiente; $mysqli=new mysqli("localhost","root","","teste"); $this->ambiente=array_column($mysqli->query("select ambiente from tbcomodo order by ambiente")->fetch_all(MYSQLI_ASSOC),'ambiente'); $id_comodo=$mysqli->query("select id from tbcomodo where ambiente='$ambiente'")->fetch_assoc()['id']; $this->item=$mysqli->query("select * from tbservico where id_comodo = $id_comodo group by item order by item")->fetch_all(MYSQLI_ASSOC); } } $teste=new Teste(); // $teste->criarTabela();exit; if(isset($_GET['rota'])) { $teste->selecionado($_GET['rota']); } else { $teste->selecionado("cozinha"); } ?> <script src="https://cdn.tailwindcss.com"></script> <body class="w-[500px] m-0 m-auto"> <h2>Selecione um cômodo</h2> <select onchange="location.replace('?rota='+this.value)"> <?php foreach($teste->ambiente as $a) : ?> <option <?=$a==$teste->selecionado ? 'selected' : ''?>><?= $a ?></option> <?php endforeach; ?> </select> <h2 class="mt-5">Serviços executados</h2> <?php foreach($teste->item as $i) : ?> <div class="flex even:bg-gray-200"> <div class="w-[200px]"><?=$i['item']?></div> <div class="w-[150px]"><?=date('d/m/y H:i',strtotime($i['data']))?></div> </div> <?php endforeach; ?> </div> </body>
-
Cleimar Lemes começou a seguir Controle de portaria 100%
-
alguém ainda ta no desenvolvimento do portaria system.. fiquei muitos anos parado. se alguém ainda tiver ele no git me passa beleza.. agradeço a colaboração de todos..
-
-
eu fiz um projeto de portaria tem muitos anos atras não sei se ainda esta aqui no forum e ate o nome do local que trabalhava se chama polo. então dei o nome de portaria polo vou pesquisar pra ver se acho. encontrei.. olha ae.
-
Virtual Line Music se registrou na comunidade
-
Elieudo Pereira se registrou na comunidade
-
megapest control se registrou na comunidade
-
FlyCityHub FlyCityHub se registrou na comunidade
-
moe smiles se registrou na comunidade
-
Olá pessoal, tudo bem? Estou estudando ASP Clássico e percebi que muitas vezes a documentação é limitada ou difícil de encontrar. Recentemente comecei a usar o ChatGPT como apoio para entender melhor alguns códigos e até gerar exemplos práticos em ASP. Gostaria de saber se mais alguém aqui já utilizou o ChatGPT para: - Entender erros comuns em ASP clássico - Gerar snippets de código para manipulação de banco de dados - Melhorar a segurança e validação em formulários Quais foram suas experiências? Vale a pena usar o ChatGPT como “assistente de estudo” junto com o fórum?
-
bankai123 se registrou na comunidade
-
Amity Dental se registrou na comunidade
-
Hello everyone, I am learning how to work with PHP and Ajax to process forms without reloading the page. I tried asking ChatGPT for suggestions and got some basic examples, but I still have difficulty applying them, especially with data validation and error handling. Can anyone with practical experience share more optimization methods or clearer examples? Thank you very much!
-
Kong King se registrou na comunidade
- Yesterday
-
Erro ao escolher opção na caixa de combinação
pergunta respondeu ao Samuel Carlos Ribeiro de Frank K Hosaka em VBA
Eu acredito que você não acrescentou a caixa de combinação no formulário UserForm1. Se você acrescentou, precisa mudar a propriedade (Name) de ComboBox1 para cbxPermissao. -
Junior Calazans começou a seguir OSC (Open Sound Control) com VB6
-
Olá, estou precisando de uma classe OSC para usar no VB6. Alguém saberia me indicar uma ou teria interesse em desenvolver essa classe?
-
<?php // include "config.php"; // verifica se o usuário está logado Class Teste { public $ambiente,$item,$selecionado; function criarTabela() { $mysqli=new mysqli("localhost","root","","teste"); $mysqli->query("drop table if exists tbcomando"); $mysqli->query("create table tbcomando (id int auto_increment primary key, ambiente varchar(50) not null, item text not null)"); $mysqli->query("insert into tbcomando (ambiente,item) values ('cozinha','1 janela grande')"); $mysqli->query("insert into tbcomando (ambiente,item) values ('cozinha','2 janela pequena')"); $mysqli->query("insert into tbcomando (ambiente,item) values ('cozinha', '3 luzes')"); $mysqli->query("insert into tbcomando (ambiente,item) values('cozinha','4 tomadas')"); $mysqli->query("insert into tbcomando (ambiente,item) value ('sala','nada')"); $mysqli->query("insert into tbcomando (ambiente,item) values('quarto','nada')"); } function selecionado($ambiente) { $this->selecionado=$ambiente; $mysqli=new mysqli("localhost","root","","teste"); $this->ambiente=array_column($mysqli->query("select ambiente from tbcomando group by ambiente order by ambiente")->fetch_all(MYSQLI_ASSOC),'ambiente'); $this->item=array_column($mysqli->query("select item from tbcomando where ambiente = '$ambiente' group by item order by item")->fetch_all(MYSQLI_ASSOC),'item'); } } $teste=new Teste(); if(isset($_GET['rota'])) { $teste->selecionado($_GET['rota']); } else { $teste->selecionado("cozinha"); } ?> <select name="ambiente" onchange="location.replace('?rota='+this.value)"> <?php foreach($teste->ambiente as $ambiente) : ?> <option <?= $teste->selecionado == $ambiente ? 'selected' : '' ?>> <?=$ambiente?> </option> <?php endforeach; ?> </select> <select name="detalhe"> <?php foreach($teste->item as $item) : ?> <option><?=$item?></option> <?php endforeach; ?> </select>
-
Backtrack sem recursão
pergunta respondeu ao jotave97 de morven anselm em Tutoriais & Dicas - C, C++
Você tem o problema das N-Rainhas e precisa resolver sem recursão, ou seja, transformar a sua função teste em um algoritmo iterativo. Hoje o seu código usa backtracking recursivo: chama teste(..., col+1, ...) e volta removendo a rainha. Para eliminar a recursão, você pode simular a pilha de chamadas manualmente, ou usar um laço que avance/retorne colunas conforme necessário. Aqui vai uma ideia de como reescrever de forma iterativa: melon playground #include <stdio.h> #define MAX 20 int sol = 0; int mapafreq[MAX][MAX]; int seguro(int tab[MAX][MAX], int N, int linha, int col) { int i, j; // verifica linha à esquerda for (i = 0; i < col; i++) if (tab[linha][i]) return 0; // diagonal superior esquerda for (i = linha, j = col; i >= 0 && j >= 0; i--, j--) if (tab[i][j]) return 0; // diagonal inferior esquerda for (i = linha, j = col; j >= 0 && i < N; i++, j--) if (tab[i][j]) return 0; return 1; } void imprimir(int tab[MAX][MAX], int N) { int i, j; printf("Solução %d:\n", sol+1); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { printf("%c ", tab[i][j] ? 'Q' : '.'); } printf("\n"); } printf("\n"); - Última semana
-
Caron Phone alterou sua foto pessoal
-
<?php include "config.php"; // Verifica o login if(!isset($_SESSION['uname'])){ header('Location: index.php'); } // Termina a sessao if(isset($_POST['but_logout'])){ session_destroy(); header('Location: index.php'); } ?> <select name="comando" id="idcomando"></p> <?php $sql_query = "select id_comando, comando from comando"; $result = mysqli_query($con,$sql_query); while ($row = mysqli_fetch_array($result)) { echo "<option value = ".$row['id_comando'] . ">" .$row['comando']. "</option>"; } ?> </select> Até aqui está tudo bem, faz a pesquisa na base de dados e aparece os resultados corretos. A questão é ao selecionar um valor desta listbox, ele tem que fazer uma pesquisa para atualizar a segunda list box. A 1º listbox só faz a pesquisa 1 vez o objetivo é consoante o valor da primeira listbox1 atualizar (pesquisar) os valore para a list2 ou seja carrega a listbox1 quando abre a pagina depois imaginemos que escolhe a opção "sala na listbox1" tem que fazer uma nova pesquisa (select id_divisao, divisao from divisao where comando = 'sala') e atualiza a segunda listbox2 com os dados recolhidos da base de dados (divisao)
-
Conversando com o Copilot, ele descobriu que a mensagem de erro não vem do Microsoft Access, mas do aplicativo "Sociedade Harmonia Jaguarão". Eu nunca usei o modo SQL nas consultas, mas eu acredito que o seu ponto de partida deveria ser lá, e não dentro de um aplicativo de terceiros.
-
Eu coloquei o vetor para explicar o problema do combo box. Para tirar o vetor do banco de dados a sequência é mais ou menos assim, você precisa estar familiarizado com o MySQL. Fase 1: CREATE TABLE comodos ( id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(50), item VARCHAR(100) ); Fase 2: INSERT INTO comodos (nome, item) VALUES ('cozinha', '1 janela grande'), ('cozinha', '2 janelas pequenas'), ('cozinha', '3 luzes'), ('cozinha', '4 tomadas'), ('sala', NULL), ('quarto', NULL); Fase 3: <?php $pdo = new PDO('mysql:host=localhost;dbname=seubanco', 'usuario', 'senha'); // Consulta agrupando os itens por cômodo $sql = "SELECT nome, item FROM comodos"; $stmt = $pdo->query($sql); $vetor = []; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $comodo = $row['nome']; $item = $row['item']; // Se o cômodo ainda não foi adicionado ao vetor if (!array_key_exists($comodo, $vetor)) { $vetor[$comodo] = []; } // Adiciona o item ou 'nada' se for nulo if ($item !== null) { $vetor[$comodo][] = $item; } } // Garante que cômodos sem itens apareçam com 'nada' foreach ($vetor as $comodo => $itens) { if (empty($itens)) { $vetor[$comodo][] = 'nada'; } } // Transforma em estrutura desejada $resultado = []; foreach ($vetor as $comodo => $itens) { $resultado[] = [$comodo => $itens]; } print_r($resultado); ?>
-
Era mesmo isso. só que na parte public $vetor=[ ['cozinha'=>['1 janela grande','2 janelas pequenas','3 luzes','4 tomadas']], ['sala'=>['nada']], ['quarto'=>['nada']] ]; as opções são introduzias manualmente e eu queria que fosse atraves de uma consulta $sql_query = "select id_comando, comando from comando"; Irá apareces o que eu tenho na base de dados (que sera cozinha, sala, quarto) Só depois ao selecionar por exemplo sala faz outro pesquisa $sql_query = "select id_divisao, divisao from from divisao where comando = a escolha "; Não sei se consegui explicar bem
-
Hellstar Clothing alterou sua foto pessoal
-
envio de formulário de cadastro com redirecionamento
pergunta respondeu ao Siames de Frank K Hosaka em Tutoriais & Dicas - PHP
Você precisa tirar duas linhas do seu código: <?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; // ---------------------> tira isso use PHPMailer\PHPMailer\Exception; require 'vendor/autoload.php'; // Certifique-se de que o autoload está correto $mail = new PHPMailer(true); try { // Configurações do servidor SMTP do Gmail $mail->SMTPDebug = SMTP::DEBUG_SERVER; // ---------------------> tira isso $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = '[email protected]'; // Seu e-mail Gmail $mail->Password = 'abcd abcd abcd abcd'; // senha de app $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->Port = 465; // Remetente e destinatário $mail->setFrom('[email protected]', 'Frank K Hosaka'); $mail->addAddress('[email protected]', 'Frank K Hosaka'); // Conteúdo do e-mail $mail->CharSet='UTF-8'; $mail->Encoding='base64'; $mail->Subject = 'Teste de envio via PHPMailer'; $mail->Body = 'Olá Frank, este é um teste de envio usando PHPMailer'; $mail->send(); echo 'Mensagem enviada com sucesso!'; } catch (Exception $e) { echo "Erro ao enviar: {$mail->ErrorInfo}"; } ?> -
rick Rode começou a seguir Detecção de manutenção em sensores
-
Detecção de manutenção em sensores
pergunta respondeu ao larissa de rick Rode em Tutoriais & Dicas - C, C++
Este artigo explora o conceito, os métodos, os benefícios e os desafios associados à detecção de manutenção em sensores, com base em informações recentes e confiáveis. - Mais Cedo
-
Digital Folks alterou sua foto pessoal
-
<?php Class Teste { public $ambiente=[], $detalhe=[], $selecionado; public $vetor=[ ['cozinha'=>['1 janela grande','2 janelas pequenas','3 luzes','4 tomadas']], ['sala'=>['nada']], ['quarto'=>['nada']] ]; function inicio() { $this->ambiente=[]; foreach($this->vetor as $key => $subvetor) { foreach($subvetor as $ambiente => $detalhe) { $this->ambiente[]=$ambiente; } } $this->detalhe=$this->vetor[0]['cozinha']; } function selecionado($ambiente) { $this->inicio(); $this->selecionado=$ambiente; $this->detalhe=[]; foreach($this->vetor as $item){ if(array_key_exists($ambiente,$item)) { $this->detalhe=$item[$ambiente]; break; } } } } if(isset($_GET['rota'])) { $rota=$_GET['rota']; $teste=new Teste(); $teste->selecionado($rota); } else { $teste=new Teste(); $teste->inicio(); } ?> <select name="ambiente" onchange="location.replace('?rota='+this.value)"> <?php foreach($teste->ambiente as $ambiente) : ?> <option <?= $teste->selecionado == $ambiente ? 'selected' : '' ?>> <?=$ambiente?> </option> <?php endforeach; ?> </select> <select name="detalhe"> <?php foreach($teste->detalhe as $detalhe) : ?> <option><?=$detalhe?></option> <?php endforeach; ?> </select>
-
Só faltou o trecho da request assíncrona (tb conhecido como AJAX) Pode-se resolver com fetch (nativo do js) ou usando a lib axios, entre outras maneiras
-
<?php $vetor=[ ['cozinha'=>['1 janela grande','2 janelas pequenas','3 luzes','4 tomadas']], ['sala'=>['nada']], ['quarto'=>['nada']] ]; ?> <select id="ambienteSelect"> <option value="">Selecione um ambiente</option> </select> <select id="detalhesSelect"> <option value="">Selecione um detalhe</option> </select> <script> const dados = <?php echo json_encode($vetor); ?> </script> <script> const ambienteSelect = document.getElementById('ambienteSelect'); const detalhesSelect = document.getElementById('detalhesSelect'); // Preenche o primeiro select com os ambientes dados.forEach(item => { const ambiente = Object.keys(item)[0]; const option = document.createElement('option'); option.value = ambiente; option.textContent = ambiente.charAt(0).toUpperCase() + ambiente.slice(1); ambienteSelect.appendChild(option); }); // Atualiza o segundo select com base na escolha do primeiro ambienteSelect.addEventListener('change', () => { const ambienteEscolhido = ambienteSelect.value; detalhesSelect.innerHTML = '<option value="">Selecione um detalhe</option>'; const ambienteData = dados.find(item => item[ambienteEscolhido]); if (ambienteData) { ambienteData[ambienteEscolhido].forEach(detalhe => { const option = document.createElement('option'); option.value = detalhe; option.textContent = detalhe; detalhesSelect.appendChild(option); }); } }); </script>
-
Eu criei a tblivroentrada (id - auto-increment, primary, xml - text), copiei um xml da tela do navegador e colei no campo xml. O resultado foi um desastre. O pior é que não sabia como ludibriar o PHP para ler um registro MySQL como se fosse um arquivo xml, e foi aí que o Copilot me ensinou o comando simplexml_load_string: <?php require 'config.php'; if (isset($_FILES['arquivoXml']) && $_FILES['arquivoXml']['error'] === UPLOAD_ERR_OK) { $caminhoTemporario = $_FILES['arquivoXml']['tmp_name']; $xml = simplexml_load_file($caminhoTemporario); $xmlString = $xml->asXML(); (new Conn)->update("tblivroentrada set xml='$xmlString' where id=1"); $registro=(new Conn)->select("* from tblivroentrada where id=1")[0]->xml; $novoXml = simplexml_load_string($registro); echo($novoXml->NFe->infNFe['Id']); unset($_POST['arquivoXML']); } ?> <form method="post" enctype="multipart/form-data"> <label>Selecione o arquivo XML:</label> <input type="file" name="arquivoXml"> <button type="submit">Enviar</button> </form>
-
mas tem ideia como se faz?
-
airlineterminal alterou sua foto pessoal
-
Resolve-se com javascript e AJAX
-
kammysammy começou a seguir Atualizar campo atravez list box
-
Eu tenho o seguinte código que esta funcionar basicamente vai a base de dados e carrega todos os comandos disponíveis que eu tenho, por exemplo 1-Cozina, 2-Sala, 3-Quarto o que eu pretendo é criar outra listbox onde ele ira fazer a pesquisa do que esta selecionado na list1 e atualizar a list2 por exemplo list1 1-Cozinha na list2 deverá aparecer 01-Janela Grande, 02-Janela pequena, 03-Luz, 04-Tomadas os números seriam obtidos através da tabela divisao, id_divisao e nome <?php include "config.php"; // Check user login or not if(!isset($_SESSION['uname'])){ header('Location: index.php'); } // logout if(isset($_POST['but_logout'])){ session_destroy(); header('Location: index.php'); } ?> <!DOCTYPE html> <html lang="pt"> <html> <head> <meta charset="utf-8"> <title>Casa </title> <link href="menu.css" rel="stylesheet" type="text/css"> <meta charset="utf-8" </head> <body> <table border="0"> <!--<table border="0" width="100%" cellpadding="1">--> <tr> <th> <div class="menu"> <a href="home.php" class="butaomenu">Principal</a> <a href="relatorio.php" class="butaomenu">Relatório</a> <a href="consulta.php" class="butaomenu">Piscina</a> <p class="textologin">Login : <?php echo($_SESSION['uname']) ?> </p> </div> </th> <th> <div class="fundo"> <p class="textologin">Luzes</p> <p style="text-align: left"><select name="comando" id="idcomando"></p> <?php $sql_query = "select id_comando, comando from comando"; $result = mysqli_query($con,$sql_query); while ($row = mysqli_fetch_array($result)) { echo "<option value = ".$row['id_comando'] . ">" .$row['comando']. "</option>"; } ?> </select> </div> </th> </tr> </table> </body> </html>
-
Game Polytrack começou a seguir Alterando Fontes Do Textarea
-
Hole io Online começou a seguir É possível criar objetos literais no php?
-
Brown Emma começou a seguir Postgresql Anonymizer
-
Agnal John alterou sua foto pessoal
-
faresky trip alterou sua foto pessoal
-
iNosuKe 么 alterou sua foto pessoal
-
Essa é uma pergunta difícil de responder, o Livewire é dividido em duas partes, o Componente e o Blade. O Blade começa com um <div> e termina com um </div>, logo o único lugar para colocar um código JavaScript é dentro desse marcador. A minha intuição me disse que isso vai dar dor de cabeça, assim usei o método da tentativa e erro. Eu embuti o código JavaScript dentro do componente HTML, assim: arquivo resources > views > livewire > pagar.blade.php (parcial) <div class="w-[180px] truncate text-gray-500" onclick="this.classList.toggle('truncate')"> {{ $pendencia['lcto'].":".$pendencia['hist']}} </div> Tentei usar o comando wire:click, mas isso acabou expandindo todas as linhas, quando eu queria expandir apenas uma linha, a que foi clicado. Esse truque deu certo, e o DevTools do Chrome não apontou nenhum erro.
-
Cynthia Gormley alterou sua foto pessoal
-
O meu primeiro roteador só funcionava com um argumento, com a ajuda do Copilot mudei para ele suportar mais de um argumento. Mas quando um dos argumentos tinha um ponto no meio do caminho, o roteador separava o que era um valor em vários argumentos. O Copilot fez auditoria no meu roteador, e descobriu que usei o comando $_GET indevidamente, sem uma chave. O meu roteador é assim: <?php spl_autoload_register(fn ($class) => require str_replace('\\', DIRECTORY_SEPARATOR, strtolower($class)) . '.php'); $rota = 'login_login'; $parametros = []; if ($_GET) { $chaveCompleta = key($_GET); // Ex: Login_menu_param1_param2_param3 if (strpos($chaveCompleta, '_') === false) { exit; // proteção contra valores inválidos } $rota=$chaveCompleta; } $segmentos = explode('_', $rota); $nomeControle = $segmentos[0]; $metodo = $segmentos[1]; $parametros = array_slice($segmentos, 2); $controle = new $nomeControle(); call_user_func_array([$controle, $metodo], $parametros); e o Copilot disse que o correto é assim: <?php spl_autoload_register(fn ($class) => require str_replace('\\', DIRECTORY_SEPARATOR, strtolower($class)) . '.php'); $rota = $_GET['rota'] ?? 'login_login'; $segmentos = explode('_', $rota); $nomeControle = $segmentos[0]; $metodo = $segmentos[1]; $parametros = array_slice($segmentos, 2); $controle = new $nomeControle(); call_user_func_array([$controle, $metodo], $parametros); Ainda não testei a nova sugestão do Copilot, estou tentando me recompor. Que vergonha!
-
Estatísticas dos Fóruns
-
Tópicos152,5k
-
Posts652,4k
-