Jump to content
Biel.

for ou foreach fora do select e que funcione

Recommended Posts

Direto ao ponto. Pessoal abaixo temos EX1 e EX2, ambos exibe na tela o mesmo resultado. No EX1 note que (estrutura de repetição for) está DENTRO do <select> </select> 

Existe alguma forma da (estrutura de repetição for) ficar FORA do <select> </select> e ainda assim obter o mesmo resultado que o EX2 ?

 

EX 1
<?php 
$dados = array("verde", "amarelo", "azul" , "branco" );
//for($i=0; $i <count($dados); $i++){
?>
<select name="cores" required >
<option value=""></option>
<?php 
for($i=0; $i <count($dados); $i++){
?>
<option><?php echo $dados[$i];?></option>
<?php }?>
</select>

<hr>

EX 2
<select name="cores" required >
    <option></option>
    <option>verde</option>
    <option>amarelo</option>
    <option>azul</option>
    <option>branco</option>
</select>

 

Share this post


Link to post
Share on other sites

Se a questão é ficar com o foreach desacoplado do html você pode colocar os options num array e então "implodar" eles dentro do select

<?php
  $data    = ["um","dois","tres","quatro"];
  $options = [];
  foreach($data as $val){
      $options[] = "<option value='{$val}'>{$val}</option>";
  }
?>

<html>
  <select>
    <?php 
		$option = implode(",",$options);
		echo $option;
	?>
  </select>
</html>

 

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 Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos (pg_aprendiz,pg1,pg2,pg3). Estou pegando ($a,$b,$c da pg_aprendiz) e exibindo na (pg1,pg2,pg3) . Quero fazer o seguinte:
      1º com include quero pegar somente $a da pg_aprendiz.php e exibir na pagina1 e que a pagina1 continue tendo normalmente print $a , print $b , print $c
      2º com include quero pegar somente $b da pg_aprendiz.php e exibir na pagina2, e que a pagina2 continue tendo normalmente print $a , print $b , print $c
      3º com include quero pegar somente $c da pg_aprendiz.php e exibir na pagina3, e que a pagina3 continue tendo normalmente print $a , print $b , print $c
       
      pg_aprendiz<br /> <?php $a = 6; $b = 8; $c = 5; ?> <br />---------------------------------------------------------pg_aprendiz<br /><br /> pagina1<br /> <?php include("pg_aprendiz.php"); print $a.'<br />'; // exibe na tela 6 print $b.'<br />'; print $c; ?> <br />---------------------------------------------------------pagina1<br /><br /> pagina2<br /> <?php include("pg_aprendiz.php"); print $a.'<br />'; print $b.'<br />'; // exibe na tela 8 print $c.'<br />'; ?> <br />---------------------------------------------------------pagina2<br /><br /> pagina3<br /> <?php include("pg_aprendiz.php"); print $a.'<br />'; print $b.'<br />'; print $c.'<br />'; // exibe na tela 5 ?> <br />---------------------------------------------------------pagina3<br /><br />  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos (pg1 e pg2).
      A pagina2 está funcionando normalmente e exibe na tela este resultado 
      nome-> joao email-> teste@gmail.com  
      Pessoal as duas linhas abaixo $nome e $email  esta na pagina1 e está fora do while. Quero replicar as duas linhas $nome e $email para dentro do while, sem include, somente replicar para obter o mesmo resultado que a pagina2 . Alguém tem ideia de como fazer isso? Obrigado!
      $nome  = $linha['nome']; $email = $linha['email'];   
      pagina1 <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz"); ?> <?php while($linha = mysqli_fetch_array($sql)):?> <?php endwhile;?> <?php echo 'nome-> '.$nome;?><br> <?php echo 'email-> '.$email;?> <br>------------------------------------------pagina1.php<br><br> pagina2 <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz"); ?> <?php while($linha = mysqli_fetch_array($sql)):?> <?php $nome = $linha['nome']; ?> <?php $email = $linha['email']; ?> <?php endwhile;?> <?php echo 'nome-> '.$nome;?><br> <?php echo 'email-> '.$email;?> <br>------------------------------------------pagina2.php<br>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal a function abaixo exibe na tela o nome APRENDIZ.
      Gostaria de saber se é possível exibir na tela no formato texto o nome do link assim  -> pg2.php ou assim -> pg2.php  APRENDIZ 

      Nota: Vez por outra vou precisar alterar o nome da pg2.php por EX para qualquer outro nome de página . Lembrando que o link <a href="pg2.php">APRENDIZ</a> está em centenas de páginas  e quando  faço alteração da pg2.php para qualquer outro nome de pagina por EX, todos os links <a href="pg2.php">APRENDIZ</a> que estão em centenas de páginas também são alterados altomaticamente. A maioria dos editores de texto tem esta funcionalidade de atualizar todos os links de uma só vez. Portanto pessoal, exibir na tela o nome do link no formato texto tem que ser algo dinamico e não manual, por causa do nº de paginas que este link <a href="pg2.php">APRENDIZ</a> se encontra. Amigo, sua dica, sugestão, critica é bem vindo. Obrigado  
      Alguém se habilita? Obrigado
      <?php function exibir_nome_do_link(){?> <a href="pg2.php">APRENDIZ</a> <?php } echo exibir_nome_do_link(); ?>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos três exemplos que está funcionando normalmente, mas tem um problema. Gostaria que EX2 e EX3 tivesse a mesma referencia que EX1 sempre que uma nova referencia for gerada à partir do EX1.
      EX1 <?php function aleatorio($limit){ $str = "123456789"; $maximo = strlen ($str)-1; $caracteres = ''; for($i = 0; $i < $limit; $i++): $caracteres .= $str{mt_rand(0,$maximo)}; endfor; return $caracteres; } $gerar = aleatorio(4); echo $gerar; ?> <br /> EX2 <?php $nome = "joao;"?> <?php function teste1($nome) {?> <?php $gerar = aleatorio(4);?> <?php echo $gerar;?> <?php } // final função?> <?php print(teste1($nome));?> <br /> EX3 <?php $email = "teste@gmail.com;"?> <?php function teste2($nome) {?> <?php $gerar = aleatorio(4);?> <?php echo $gerar;?> <?php } // final função?> <?php print(teste2($email));?>  
       
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos três function. (Ex1 quando dou echo retorna div email) (Ex2 quando dou echo retorna div nome) (Ex3 gostaria que retornasse div nome e div email em echo SEPARADO usando apenas uma function
      EX 1 <?php $email = "teste@gmail.com"; ?> <?php function aprendiz_01($email){?> <div style="border:1px solid #F05;">email</div> <?php }?> <?php echo aprendiz_01($email);?> <br />------------------------------------------------- 01<br /> EX 2 <?php $nome = "joao"; ?> <?php function aprendiz_02($nome){?> <div style="border:1px solid #F05;">joao</div> <?php }?> <?php echo aprendiz_02($nome);?> <br />------------------------------------------------- 02<br /> EX 3 <?php $nome = "joao"; $email = "teste@gmail.com"; ?> <?php function aprendiz_03($nome){?> <div style="border:1px solid #F05;">joao</div> <?php }?> <?php echo aprendiz_03($nome);?> <?php //echo 'email ->'.aprendiz_03($email);?> <br />------------------------------------------------- 03<br />  
×

Important Information

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