Ir para conteúdo

washalbano

Members
  • Total de itens

    369
  • Registro em

  • Última visita

  • Dias vencidos

    11

Tudo que washalbano postou

  1. washalbano

    Sistema não funciona corretamente

    Já melhorou muito, heim??? Com foi que mudou tanto assim? Já está funcionando! Só precisei diminuir uma descida de nível ali
  2. washalbano

    Sistema não funciona corretamente

    Olá! Percebi que seu sistema não define rotas, mas sim executa e sai exit() da execução. Dessa forma, sempre será executada apenas e somente a primeira rota. Acredito que precisar efetuar 2 procedimentos: 1) definir as rotas 2) executar a rota, conforme a REQUEST_URI atual
  3. washalbano

    Abrir url na mesma janela

    tente com location.replace: https://developer.mozilla.org/en-US/docs/Web/API/Location/replace
  4. washalbano

    Insert em PHP com muitos campos

    faltou abrir aspas simples pro li.mp4
  5. washalbano

    Upload de multiplos arquivos com PHP

    Olá! Segue sugestão: js function Carrega() { const fileInput = document.getElementById("arquivo"); const fData = new FormData(); for (file of fileInput.files) { fData.append('arquivo[]', file); } $.ajax({ url: "upload.php", method: "POST", data: fData, contentType: false, cache: false, processData: false, beforeSend: function () { $('#respimg').html("Enviando..."); }, success: function (data) { $('#msgret').html(data); } }); } php if (isset($_FILES['arquivo'])) { for ($i = 0; $i < count($_FILES['arquivo']['name']); $i++) { $nomeArquivo = $_FILES['arquivo']['name'][$i]; $tamanhoArquivo = $_FILES['arquivo']['size'][$i]; $nomeTemporario = $_FILES['arquivo']['tmp_name'][$i]; echo "<pre>Arquivo <b>$i</b>: "; print_r([$nomeArquivo, $tamanhoArquivo, $nomeTemporario]); echo '</pre>'; } }
  6. washalbano

    Insert em PHP com muitos campos

    E dá algum erro? Consegue transcrever ou enviar screenshot pra gente tentar entender?
  7. washalbano

    próxima image

    Imagine que as fotos estão dentro de um container com barra de rolagem oculta e ao clicar em prev/next o container será movido Xpx pra esquerda ou para a direita. segue sugestão: <div class="slider"> <div class="images-container"> <figure class='active'><img src="https://picsum.photos/400/300?random=1" /></figure> <figure><img src="https://picsum.photos/400/300?random=2" /></figure> <figure><img src="https://picsum.photos/400/300?random=3" /></figure> <figure><img src="https://picsum.photos/400/300?random=4" /></figure> <figure><img src="https://picsum.photos/400/300?random=5" /></figure> </div> <div class="controllers"> <button id='prev'>&#10094;</button> <button id='next'>&#10095;</button> </div> </div> <div class="log"> <p></p> </div> * { box-sizing: border-box; } .slider { overflow-x: hidden; position: relative; } .slider .images-container { display: flex; position: relative; width: 100%; transition: all 0.2s ease; } .slider figure { display: flex; margin: 0; min-width: 100%; justify-content: center; } .slider .controllers { position: absolute; top: 50%; width: 100%; display: flex; justify-content: space-between; transform: translateY(-50%); } .log { display: flex; } .log > p { font-family: monospace; white-space: pre; margin: 12px; padding: 12px; border-left: thin solid #eee; } const log = document.querySelector("div.log"); const slider = document.querySelector("div.slider"); const imagesContainer = slider.querySelector(".images-container"); const figuresCollection = [...imagesContainer.children]; let activeFigure; let activeIndex; let figureWidth; const setImagesContainerPosition = () => { console.log("activeIndex :>> ", activeIndex); imagesContainer.style.transform = `translateX(-${ activeIndex * activeFigure.offsetWidth }px)`; }; const moveSlider = (direction) => { // select active figure activeFigure = slider.querySelector("figure.active"); // detect index of active figure const prevIndex = figuresCollection.indexOf(activeFigure); activeIndex = (direction === "right" ? prevIndex + 1 : prevIndex - 1 + figuresCollection.length) % figuresCollection.length; setImagesContainerPosition(); // remove active from activeFigure.classList.remove("active"); figuresCollection[activeIndex].classList.add("active"); log.querySelector("p").innerHTML = JSON.stringify( { prevIndex, activeIndex }, null, 2 ); }; next.onclick = () => { moveSlider("right"); }; prev.onclick = () => { moveSlider("left"); }; window.onresize = setImagesContainerPosition; veja exemplo rodando aqui: https://codepen.io/washalbano/pen/ExrKGYZ
  8. washalbano

    função de comparação com multiplos de 5

    <style> *{ font-family: sans-serif; } </style> <?php // SCRIPT PARA CALCULAR QUANTAS PLACAS DE Xm² cabem num espaço de Ym² // e quantas placas adicionais serão necessárias para cobrir o espaço restante, se existir // plate's size in m² $platesSize = 5; // total area to cover in m² $totalArea = 171; // calc how many complete plates are needed to cover the area $completePlatesNeeded = floor($totalArea / $platesSize); // calc uncovered area $uncoveredAreaSize = $totalArea % $platesSize; echo "<p>Área total: <b>{$totalArea}m²</b></p>"; echo "<p>Tamanho de cada placa: <b>{$platesSize}m²</b></p>"; echo "<p>Placas completas necessárias: <b>{$completePlatesNeeded}</b></p>"; echo "<p>Área restante não coberta: <b>{$uncoveredAreaSize}m²</b></p>"; // if unvered area exists, calculate how many plates are needed if ($uncoveredAreaSize > 0) { $adicionalPlatesNeeded = ceil($uncoveredAreaSize / $platesSize); echo "<p>Placas adicionais necessárias: <b>{$adicionalPlatesNeeded}</b></p>"; }
  9. washalbano

    função de comparação com multiplos de 5

    Olá! Não fui capaz de entender a questão Nesse if, não vai ser considerado o 5, apenas os 6, 7, 8, 9 e 10 e 6, 7, 8, e 9, não são múltiplos de 5 Consegue descrever melhor o que precisa ser feito?
  10. washalbano

    Carregar div sem refresh através do link

    Olá! Segue sugestão: index.php <?php $ids = [ 'asdf-1234', '4312-fasdf', '1zxc-3asd', ]; $links = ''; foreach ($ids as $id) { $links .= "<a href='pagina.php?id={$id}'> pagina {$id} </a>"; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ajax Loading HTML</title> <style> body{ background-color: #eee; } nav{ display: flex; } nav a{ padding:12px; } #conteudo{ border:thin solid goldenrod; border-radius:8px; background-color: #fff; padding:12px; box-shadow:1px 1px 5px rgba(0,0,0,.2); } </style> </head> <body> <nav><?=$links?></nav> <main> <h3>Conteúdo:</h3> <div id="conteudo"></div> </main> <script> const anchors = document.querySelectorAll('nav a'); const ajaxLoadHTML = async (e)=>{ e.preventDefault(); const link = e.target.getAttribute('href') const response = await fetch(`api/${link}`).then(response=>response.text()) conteudo.innerHTML = response } for(const anchor of anchors){ anchor.addEventListener('click', ajaxLoadHTML) } </script> </body> </html> api/pagina.php <?php echo '<pre>Conteúdo da página com id: '; print_r($_GET); echo '</pre>'; exit(__FILE__.' at line: '.__LINE__);
  11. washalbano

    Autocomplete com CI4 e Javascript

    tente assim: const resposta = await dados.json(); A função carregar_cidade, não coloca a <ul> criada em lugar algum da página atual. Um controller que vai devolver um json, não precisa carregar uma view. Se estiver extendendo do BaseController, use o $response que ele inicia, assim: return $this->response->setStatusCode(200) ->setContentType('application/json') ->setJSON($seu_array_de_dados);
  12. washalbano

    [Resolvido] php Division by zero

    Coloque uma condição para verificar se $parcpg é maior que zero Se não for, qual deve ser o valor de $valorparcelado? $valorparcelado = $parcpg > 0 ? $valente / $parcpg : $oValorQueDeveSer;
  13. washalbano

    separar html do javaScript

    Olá! Se entendi... não precisa repetir os trechos de js Veja se era isso: <div class="slider-kind first"> <div class="images-container"> <a href="link5.php" target="_blank"><img src="https://picsum.photos/600/300?random=1" /></a> <a href="link6.php" target="_blank"><img src="https://picsum.photos/600/300?random=2" /></a> <a href="link7.php" target="_blank"><img src="https://picsum.photos/600/300?random=3" /></a> <a href="link8.php" target="_blank"><img src="https://picsum.photos/600/300?random=4" /></a> </div> </div> <div class="slider-kind second"> <div class="images-container"> <a href="link1.php" target="_blank"><img src="https://picsum.photos/400/200?random=5" /></a> <a href="link2.php" target="_blank"><img src="https://picsum.photos/400/200?random=6" /></a> <a href="link3.php" target="_blank"><img src="https://picsum.photos/400/200?random=7" /></a> <a href="link4.php" target="_blank"><img src="https://picsum.photos/400/200?random=8" /></a> </div> </div> <div class="slider-kind third"> <div class="images-container"> <a href="link1.php" target="_blank"><img src="https://picsum.photos/700/200?random=9" /></a> <a href="link2.php" target="_blank"><img src="https://picsum.photos/700/200?random=10" /></a> <a href="link3.php" target="_blank"><img src="https://picsum.photos/700/200?random=11" /></a> <a href="link4.php" target="_blank"><img src="https://picsum.photos/700/200?random=12" /></a> </div> </div> .slider-kind { display: flex; justify-content: center; height: 300px; } .slider-kind.second { height: 200px; } .slider-kind .images-container img { position: absolute; transform: translateX(-50%); z-index: 1; transition: all 0.2s ease; opacity: 0; } .slider-kind .images-container img[active] { z-index: 2; animation: fadeIn 0.3s ease forwards; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } function setActiveSlide(container) { const images = container.querySelectorAll('img') const removeActiveAttribute = () => images.forEach(image => image.removeAttribute('active')) const toggleSlide = indexImageToActivate => { removeActiveAttribute() images[indexImageToActivate].setAttribute('active', true) } const indexActive = Math.floor(Math.random() * images.length) toggleSlide(indexActive) } function makeSliderKind(selector, intervalTime) { const imagesContainer = document.querySelector(selector) let intervalRef = setInterval(() => setActiveSlide(imagesContainer), intervalTime) } makeSliderKind('.first', 1500) makeSliderKind('.second', 2500) makeSliderKind('.third', 500) https://codepen.io/washalbano/pen/VwqxMvw
  14. washalbano

    [Resolvido] update combobox php mysql

    blz @gersonab?
  15. washalbano

    [Resolvido] update combobox php mysql

    Não precisa gerar um arquivo .json Apenas devolver o array com o resuldado do database, em formato json. <?php // treat this as json header('Content-Type: application/json'); // handle the request if (!isset($_GET['category']) || !preg_match('/^[A-Z]$/', $_GET['category'])) { // clear the old headers header_remove(); // set the actual http response code http_response_code(404); // ok, validation error, or failure header('Status: 404 Not Found'); exit(); } // consider this is a database $database = [ 'A' => [ [ 'id' => 'A-123', 'name' => 'Produtc 01 from Category A' ], [ 'id' => 'A-234', 'name' => 'Produtc 02 from Category A' ], [ 'id' => 'A-345', 'name' => 'Produtc 03 from Category A' ], [ 'id' => 'A-456', 'name' => 'Produtc 04 from Category A' ] ], 'B' => [ [ 'id' => 'B-123', 'name' => 'Produtc 01 from Category B' ], [ 'id' => 'B-234', 'name' => 'Produtc 02 from Category B' ], [ 'id' => 'B-345', 'name' => 'Produtc 03 from Category B' ], ], 'C' => [ [ 'id' => 'C-123', 'name' => 'Produtc 01 from Category C' ], [ 'id' => 'C-234', 'name' => 'Produtc 02 from Category C' ], ], 'D' => [], ]; die(json_encode($database[$_GET['category']])); veja o exemplo em: https://github.com/w-studies/ajax-json
  16. washalbano

    [Resolvido] update combobox php mysql

    Não seria mais "econômico", ao invés de trafegar todo esse html, entregar apenas um json? E no front, a cada changeEvent, montar o outro select conforme necessário, via js? Econômico, inteligente e reusável, pq com os dados em json, você pode alimentar o que quiser, e não somente um select.
  17. Ajustei! Percebi que no Opera funciona, no Chrome funciona, no Edge funciona. Mas no Firefox não funciona. veja: https://codepen.io/washalbano/full/KKrjBzN
  18. washalbano

    itens do select

    Olá! Segue sugestão: https://codepen.io/washalbano/pen/NWELpbv let selectedElement const arrowUp = document.getElementById('id1') const arrowDown = document.getElementById('id2') // define o elemento select const select = document.getElementById('carros') // quando o select sofrer alteração select.onchange = (e) => { // define o index selecionado const selectedIndex = e.target.selectedIndex selectedElement = select.options[selectedIndex] } function setaPraCima() { if ((prevElement = selectedElement.previousElementSibling)) { select.insertBefore(selectedElement, prevElement) } } function setaPraBaixo() { if ((nextElement = selectedElement.nextElementSibling)) { select.insertBefore(nextElement, selectedElement) } } arrowUp.onclick = setaPraCima arrowDown.onclick = setaPraBaixo
  19. washalbano

    listar somente dados numéricos

    Olá! Você pode usar uma expressão regular para trazer somente os resultados onde a coluna codigo contenha somente e apenas números, usando uma regex, assim: SELECT * FROM tab_aprendiz WHERE codigo REGEXP '^[0-9]+$';
  20. washalbano

    Problema acentuação MySQL

    Olá! Primeira sugestão é ajustar o texto no seu database, para que visualize corretamente. Como o colega sugeriu acima, no mysqli, se define utf-8 para a conexão assim: // definição de variáveis para conexão $host = 'localhost'; // servidor $user = 'root'; // nome do utilizador $pass = 'my-secret-pw'; // senha ou password $database = 'imasters'; // nome da base de dados // estabelecer conexão: $sqli = new mysqli($host, $user, $pass); // definir o padrão de caracteres $sqli->set_charset('utf8'); // selecionar/abrir o banco de dados para trabalhar $sqli->select_db($database)
  21. washalbano

    banco de dados - imprimir quantidade de tabelas

    Olá! Testei aqui e funcionou muito bem. Veja: <?php // definição de variáveis para conexão $host = 'localhost'; // servidor $user = 'root'; // nome do utilizador $pass = 'my-secret-pw'; // senha ou password $database = 'studies'; // nome da base de dados // estabelecer conexão: $sqli = new mysqli($host, $user, $pass); // verificando se conectou de boas: if ($sqli->connect_error) { // se houver alguma falha, exibe mensagem: die('<p class="text-danger">Falha na conexão: ' . $sqli->connect_error . '</p>'); } // definir o padrão de caracteres if (!$sqli->set_charset('utf8')) { // se não conseguir definir o padrão de caracteres, exibe o padrão disponível die("<p class='text-danger'>Seu charset não é utf8, chefe!<br>$sqli->character_set_name()</p>"); } // selecionar/abrir o banco de dados para trabalhar if (!$sqli->select_db($database)) { // se o banco de dados não for encontrado die("<p class='text-danger'>Banco de dados não encontrado, chefe!</p>"); } $query = "SELECT count(*) AS totalNumberOfTables FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '$database'"; $result = $sqli->query($query); if ($result->num_rows > 0) { echo '<pre>$totalNumberOfTables: '; print_r($result->fetch_all(MYSQLI_ASSOC)); echo '</pre>'; }
  22. washalbano

    Não consegui usar o comando for do JavaScript

    Olá! Não consegui entender. No final, conseguiu ou não?
  23. washalbano

    Dois arquivos com a mesma sintaxe mas só um funciona - Erro 500

    Olá! Certifique-se de que a exibição de erros está ativa. Pode ser falha na conexão com o database.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.