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.
      Pessoal o browser firefox tem uma recurso muito interessante para redimensionar tela, onde você clica,segura e arrasta . O recurso está no menu
      ferramentas-desenvolvimento web-design responsivo
       
      Alguém conhece alguma extensão para google chrome que redimensione o browser semelhante o recurso que tem no firefox para redimensionar tela, onde você clica,segura e arrasta ?
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal ao clicar no item1 a div aprendiz fica oculta.  Gostaria que quando item1 fosse pressionado a div aprendiz ficasse oculta e comentada. 
      Quando pedisse para exibir código fonte da página mostrasse a div aprendiz comentada assim 
      <!--<div id="aprendiz" style="border:2px solid #F05;"> div aprendiz </div>--> ...
      <form> <select name="" id="WHY" size="2" required onChange="teste()" > <option value="item1">item1</option> </select> <br /><br /> <div id="aprendiz" style="border:2px solid #F05;"> div aprendiz </div> </form> ...
      <script> var div1 = document.getElementById("aprendiz").style.display="block" ; function teste(){ var itemSelecionado = document.getElementById("WHY").value; if(itemSelecionado == "item1"){ var div1 = document.getElementById("aprendiz").style.display="none" ; } } </script>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal o código abaixo está funcionando normalmente. Gostaria que javascript,ajax,jquery impedisse php apenas de atualizar a página, mas não impedisse php de executar sua própria regra if elseif exibindo normalmente inputA e inputB quando item1 e item2 for pressionado. Como faço? Obrigado.
      <form method="post"> pagina1.php <!-- <select name="itemSelecionado" required size="2" onChange="submit()"> --> <select name="itemSelecionado" required size="2" onChange="this.form.submit()"> <option value="item1">item1</option> <option value="item2">item2</option> </select> <hr /> <?php if(@$_POST['itemSelecionado']=="item1"){ ?> input A - digite qualquer coisa <input type="text" name="inputA" value="" /> <?php } elseif(@$_POST['itemSelecionado']=="item2"){ ?> input B - digite qualquer coisa <input type="text" name="inputB" value="" /> <?php }?> </form>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal quero colocar os atributos html na mesma linha document, sem repetir var aluno e que funcione, como faço? Obrigado! 
      style.display="none"  disabled=true; value="aprendiz" name="joao" ...
      Ex1  <script>    var aluno = document.getElementById("id_1").style.display="none" ;   </script>        <hr />       Ex2  <script>    var tete = document.getElementById("id_1").style.display="none" ;     var tete = document.getElementById("id_1").disabled=true;  </script>  
    • By Biel.
      Direto ao ponto. Pessoal estou tentando selecionar item1 item2 ou item3  e exibir dados correspondente sem dar refresh na página. 
      Quero fazer isso com (php + ajax) ou (php + javascript) . Uns dizem que só é possível fazer isso se estiver embutido no javascript ou ajax(select cores e select meses, juntamente com input aprendiz e aluno. Muitos dizem que se não estiver embutido no javascript ou ajax (select cores e select meses, juntamente com input aprendiz e aluno não é possivel enviar sem dar refresh na página.
      <form method="post"> <select name="itemSelecionado" required size="3" onChange="this.form.submit()"> <option value="1" >item_1</option> <option value="2" >item_2</option> <option value="3" >item_3</option> </select> <?php if (@$_POST['itemSelecionado']==1){ ?> nao tem nada <?php } elseif (@$_POST['itemSelecionado']==2){ ?> item_2 - 2+2= <input type="text" name="aprendiz" value="" /> <select name="cores" required > <option >selecione a cor</option> <option >verde</option> <option >azul</option> </select> <?php } elseif(@$_POST['itemSelecionado']==3){ ?> item_3 - 3+3= <input type="text" name="aluno" value="" /> <select name="meses" required > <option >selecione o mes</option> <option >janeiro</option> <option >fevereiro</option> </select> <?php }?> </form>  
×

Important Information

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