Jump to content

Recommended Posts

Olá galera,

fiz uma daquelas aulas online de php e o professor ensinou a fazer um SELECT(HTML) dinâmico.

Porém eu gostaria de fazer um CHECKBOX(HTML) dinâmico.

/* Arquivo: user-research-db.php */

require_once("connect.php");

function listaPesquisas($conexao) {
	$pesquisas = array();
	$query = "select * from pesquisa";
	$resultado = mysqli_query($conexao, $query);
	while($pesquisa = mysqli_fetch_assoc($resultado)) {
		array_push($pesquisas, $pesquisa);
	}
	return $pesquisas;
}

require_once("connect.php");
require_once("user-research-db.php");
$pesquisas = listaPesquisas($conexao);

<select name="pesquisa_id" class="form-control">
            <?php foreach($pesquisas as $pesquisa) :
              $essaEhAPesquisa = $usuario['pesquisa_id'] == $pesquisa['id'];
              $selecao = $essaEhAPesquisa ? "selected='selected'" : "";
              ?>
              <option value="<?=$pesquisa['id']?>" <?=$selecao?>>
                  <?=$pesquisa['nome']?>
              </option>
            <?php endforeach ?>
</select>

Está tudo funcionando perfeitamente, eu só gostaria de trocar o SELECT para CHECKBOX.

Agradeço a atenção galera!

abraço

Share this post


Link to post
Share on other sites

Pq um checkbox? Pode fazer um select multiplo :)

Valeu pela resposta rnu.silva!

eu não sabia desse atributo, testei e não gostei muito...

pra selecionar mais de uma opção tive que apertar o CTRL, acredito que muitos usuários mais leigos não irão saber utilizar. sem contar que ele não é muito bonito.

 

mas de qualquer forma, agradeço muito a sua ajuda.

Share this post


Link to post
Share on other sites

Em todo caso,

 

a estrutura do checkbox é essa:

 

Título:<input type="checkbox" name="meuItem">

 

Então, o que voce precisa é jogar essa estrutura dentro do seu laço que carrega os dados do bd. Ai basta colocar um título e um name condizentes com o que vier do seu bd...

  • +1 1

Share this post


Link to post
Share on other sites

Em todo caso,

 

a estrutura do checkbox é essa:

Título:<input type="checkbox" name="meuItem">

Então, o que voce precisa é jogar essa estrutura dentro do seu laço que carrega os dados do bd. Ai basta colocar um título e um name condizentes com o que vier do seu bd...

 

Sim.. é isso que preciso saber, como aplicar o checkbox dentro desse laço para que toda vez que houver um insert em meu banco de dados, ele atualizar automaticamente a minha página.

 

de qualquer forma agradeço seu comentário.

Share this post


Link to post
Share on other sites

Se voce sabe fazer o select dinâmico, vai na mesma linha. No select, dentro das tags option você coloca os valores que vierem do banco... no caso do checkbox você coloca a identificação ao lado e o valor no atributo name.

 

Imagine que eu faço um select que me retorne as seguintes cores:

 

id nome_cor

1 azul

2 verde

3 amarelo

 

Então, pra criar um laço e retornar esses valores como checkbox, eu crio a seguinte estrutura:

$query = mysql_query("select * from cores;");
 
//criando meu laço que vai consultar cada linha encontrada
while($ln = mysql_fetch_array($query)){
    $nomeCor = $ln['nome_cor'];
    $idCor = $ln['id'];
   
   echo "<label>$nomeCor: </label><input type='checkbox' name='$idCor'>";
}

Assim, você buscou as informações do banco e criou um check pra cada cor que existia la.

Edited by rnu.silva
  • +1 1

Share this post


Link to post
Share on other sites

Valeu rnu.silva !

consegui dessa maneira aqui:

 

 

Quando for registrar o usuario:

/* registrar.php */

<?php foreach($pesquisas as $pesquisa) :

?>
  <input type="checkbox" name="pesquisa_id[]" value="<?=$pesquisa['id']?>" checked>
   <?=$pesquisa['nome']?><br>
<?php endforeach ?>

/* Function */

function listaPesquisas($conexao) {
	$pesquisas = array();
	$query = "select * from pesquisa";
	$resultado = mysqli_query($conexao, $query);
	while($pesquisa = mysqli_fetch_assoc($resultado)) {
		array_push($pesquisas, $pesquisa);
	}
	return $pesquisas;
}

E para buscar as "pesquisas" do usuário logado (Alterar dados do perfil) :

/* alterar-perfil.php */

<?php foreach($pesquisas as $pesquisa) :
 if(strpbrk($user['pesquisa_id'], $pesquisa['id'])){
  $selecao = "checked";

 }else{
  $selecao = "";
 }

 ?>
 <input type="checkbox" name="pesquisa_id[]" value="<?=$pesquisa['id']?>" <?=$selecao?>>
 <?=$pesquisa['nome']?><br>
<?php endforeach ?>

Abraço a todos!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By vanderlei_nucash
      Tenho verificado que muitas pessoas ao redor do mundo têm esbarrado em uma falha do MySQL em não trabalhar corretamente com Views, quando estas possuem consultas complexas com muitos joins entre muitas tabelas. O link abaixo faz referência a uma dúvida do ano de 2011, mas já vi casos de 2005, 2006, 2007, 2012, 2013, 2015,2016,2017 e 2018. Afirmo que está questão é antiga, pois me deparei com o mesmo problema busquei soluções em diversos fóruns no Brasil e exterior e nada funcionava, pois é de fato um problema do MySQL, que até o momento  na versão 8, não foi resolvido. O problema é que o Mysql ignora todos os indices em consultas dentro de uma VIEW.
       
      https://forum.imasters.com.br/topic/438365-consulta-a-partir-de-view-lenta/
       
      Verifiquei que muitas tentativas em passar  parâmetros para as consultas dentro da view, em busca de solucionar o problema.
      RESOLVI O PROBLEMA através de uma procedure, com um único parâmetro de varchar(300) suficiente para para uma string "where <condições...>" ou "having <condições...>"  que funcionam bem de acordo com a complexidade da View. Coloquei o exemplo com o HAVING como parâmetro, devido este cenário ser mais complicado de solucionar para a grande maiorias das pessoas. OU SEJA, quando a consulta possui muitas tabelas, cada delas com colunas com nomes diferentes, padronizadas na VIEW com apelidos nas colunas, o HAVING é a solução ideal.
      A solução é super simples e funcional.
       
      Se alguém tiver outra solução favor compartilhar, enquanto isso vou usando esta aqui. 
      DELIMITER ;; CREATE PROCEDURE `SP_QUERY_VIEW_WITH_PARAMETERS`(IN p_having VARCHAR(300))     COMMENT 'Executes the statement' BEGIN   SET @v_having = p_having;   SET @v_sql=CONCAT('SELECT                        id    AS id_emp  ,                       user  AS emp_name,                       .                       .                       .                       FROM table1                       UNION ALL                       SELECT                        idtifier_us    AS id_emp  ,                       description    AS emp_name,                       .                       .                       .                       FROM table2'); SET @v_sql2 = CONCAT(@v_sql,@v_having);   PREPARE stmt FROM @v_sql2;   EXECUTE stmt;   DEALLOCATE PREPARE stmt; END ;; DELIMITER ; CALL `SP_QUERY_VIEW_WITH_PARAMETERS`('having id_emp=63 and emp_name like ''VANDERLEI%'' and created_at between ''2019-05-01'' and ''2019-05-17''  ')  
    • By Adriana de Luca
      Estou tentando pegar o id do livro para depois fazer um update para controlar o estoque, consegui pegar o id, porem não consigo coloca-lo no mysql
      Se coloco um id valido, ele traz as informações, porem se chamo  {'$livro_id'} da erro.
       
      Alguém pode por favor me ajudar? agradeço muito.
       
      <?php

      $query = mysql_query("SELECT * FROM produtos 
      inner join estoque ON produtos.livro_id = estoque.livro_id");

      ?>
      <div class="central">
                     <form action="#" method="GET">
                         <fieldset>
                             <legend class="titulo">Consultar Livraria</legend>
                             <select type="text" name="produtos">
                                 <option value="">Selecionar..</option>
                              <?php
                                     $sql =  mysql_query("SELECT livro_id, nome as titulo FROM produtos");
                                      while ($result = mysql_fetch_array($sql) )
                                      {
                                         echo "<option value='".$result['livro_id']."'>".$result['titulo']."</option>";
                                     }
                                 ?>                            
                             </select>
                             <input class="botao" type="submit" name="ajustar" value="Ok" />
                         </fieldset>
                      </form>
                     
       <?php
      //aqui ele mostrara o código do livro    
      echo $_GET['produtos'];
      $livro_id='produtos';

      $sql1="SELECT * FROM produtos 
      inner join estoque ON produtos.livro_id = estoque.livro_id WHERE produtos.livro_id= {'$livro_id'}";
            
      $res=mysql_query($sql1);  //SETANDO UM REGISTRO POR VEZ 
                    while($registro=mysql_fetch_row($res))                
      {    
                                            
        $nome=$registro[1];                             
        $autor=$registro[2]; 
        $editora=$registro[3]; 
        $colecao=$registro[4];                             
        $preco=$registro[5];                                   
        $data=$registro[6];   
        $quantidade=$registro[0];                      
                                           
        ?>
        <?php 
            echo "Título: $nome<br>";                                    
            echo "Autor: $autor<br>"; 
            echo "Editora: $editora<br>";  
            echo "Coleção: $colecao<br>";                             
            echo "Preço: $preco<br>";                                    
            echo "Quantidade: $quantidade<br>"; 
            echo "Data: ".date('d-m-Y', strtotime($data))."<br><p>";   

        mysql_close($connect);               
              
      ?>
    • By andrelimaverde
      Pessoal preciso de uma ajuda, desde já agradeço à todos.
      "Site teste, estudos..."
      Tenho um formulário com 3 etapas, ele está trabalhando em php normalmente e salvando os dados preenchidos em .txt (para testes apenas).
      Vamos lá, nas 3 etapas o form está com action="1.php" (2.php,  3.php) e method="post". [Não vou colocar muito código para simplificar, pois é um formulário básico fácil de entender]
      Exemplo:  Pagina 1 - envia para action '1.php'
      Nome: 
      Telefone:
      <input type="submit" value="Continuar">
      (
       O arquivo 1.php armazena os dados e redireciona => header( 'Location:Pagina2.php' ) ;   
       Assim como os outros php's
      )
      Pagina 2 - action 2.php armazena os dados e redireciona => header( 'Location:Pagina3.php' ) ; 
      Cidade:
      Endereço:
      <input type="submit" value="Continuar">
       
      A questão está na 3ª página
      Página 3 -
      Email:
      (Preciso que após preencher o campo da página 3 no caso "Email:",  ao clicar no botão, neste caso não sei se seria um submit ou button. O formulário não redirecionar para pagina 4, ao clicar ele enviar e salvar normalmente, mas aparecer um novo input na mesma pagina por Exemplo:"Twitter:"  ) 
      No caso preciso que ele não redirecione , gostaria de colocar um gif de carregando por 15 segundos por exemplo como se estivesse processando as informações... e em seguida ele apresentar o novo input do "Twitter:" , onde ai sim enviaria normalmente...
    • By Wilson Fernandes
      Olá! Preciso de ajuda para começar a construir gráficos de funções quadráticas em plano cartesiano. Já procurei várias fontes, mas nenhuma explica como construir um bom gráfico.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.