Jump to content
Biel.

include - Exibir select correspondente

Recommended Posts

Direto ao ponto. Pessoal a pagina inc_aprendiz.php exibe na tela (select cores e select carros). Quero usar SOMENTE inc_aprendiz.php e aluno.php para obter o seguinte resultado:

 

Ao visualizar no browser a pagina aluno.php gostaria que na 


div class ="cores" exibisse somente select cores e na 
div class ="carros" exibisse somente select carros

...

inc_aprendiz.php

<?php 
$cores  = 'cores';
$carros = 'carros';
?>

<?php if($cores=='cores'){?>

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

<?php }?>



<?php if($carros=='carros'){?>

<?php $dados = array("gol" , "fiat" , "palio" );?>
<select name="carros" size="3" required>
<?php for($i=0; $i <count($dados); $i++){?>
<option><?php echo $dados[$i];?></option>
<?php }?>
</select>

<?php }?>

...

<?php 
$cores  = 'cores';
$carros = 'carros';
?>

<?php include("inc_aprendiz.php");?>

<h1>aluno.php</h1>

<div class="cores" style="border:2px solid #D40000;">
<h2>cores</h2>

</div>

<hr style="margin:30px 0;">

<div class="carros" style="border:2px solid #D40000;">
<h2>carros</h2>

</div>

 

Share this post


Link to post
Share on other sites

oh my god...

Lembrei dos meus "código" quando comecei kkkkk

 

Se você definiu logo acima

<?php 
if($cores=='cores'){
?>

Por que ainda faz essa condição pra saber se cores é igual a cores e etc.?

O interessante nesse caso é você verificar nas outras páginas se elas existem:

 

<!--PÁGINA 3-->
<?php include_once "inc_aprendiz.php";?>
<h1>esta é a pagina3.php</h1>
<div class="carros">
  <?php if(isset($carros)){?>
      exibir aqui select carros
  <?php }?>
</div>

 

 

Share this post


Link to post
Share on other sites

Quimera! Entendi. Falta pouco, mas não estou conseguindo resolver. Muitos disseram que não é possível fazer o que quero com apenas duas páginas inc_aprendiz.php e aluno.php 

Share this post


Link to post
Share on other sites
11 horas atrás, quimera disse:

Quimera, mostra um exemplo prático de como resolver esta tarefa.

dentro da <div class="cores" > </div>  quero que apareça somente select cores
Dentro da <div class="carros" > </div> quero que apareça somente select carros e

 

Share this post


Link to post
Share on other sites
<?php
class Aprendiz {
  private $dados;
  
  private function definirCores() {
    $this->dados = ['verde', 'amarelo', 'azul'];
  }
  
  private function definirCarros() {
    $this->dados = ['gol', 'fiat', 'palio'];
  }
  
  public function verCores() {
    $this->definirCores();
    return ($this->dados);
  }

  public function verCarros() {
    $this->definirCores();
    return ($this->dados);
  }
}

 

<?php
require ('Aprendiz.php');
$objeto = new Aprendiz();
?>

<p>Cores</p>
<select>
  <?php foreach($objeto->verCores() as $cor) { ?>
  	<option><?= $cor ?></option>
  <?php } ?>
</select>

<p>Carros</p>
<select>
  <?php foreach($objeto->verCarros() as $carro) { ?>
  	<option><?= $carro ?></option>
  <?php } ?>
</select>

 

Share this post


Link to post
Share on other sites

Knowledge is everything, obrigado por postar. Veja:  select cores e select carros tem que vir da página inc_aprendiz.php através do include para a página aluno.php  Veja abaixo como está a página aluno.php que postei . Obrigado

<?php 
$cores  = 'cores';
$carros = 'carros';
?>

<?php include("inc_aprendiz.php");?>

<h1>aluno.php</h1>

<div class="cores" style="border:2px solid #D40000;">
<h2>cores</h2>
aqui dentro quero que apareça somente select cores
</div>

<hr style="margin:30px 0;">

<div class="carros" style="border:2px solid #D40000;">
<h2>carros</h2>
aqui dentro quero que apareça somente select carros
</div>

 

Share this post


Link to post
Share on other sites

Crie uma função fábrica e da um include nas paginas que necessita!

 

Porque o que vejo é repitação de códigos e nada mais, existe outros paradigmas de programação, além do procedural, funcional é uma delas!

 

<?php


function createSelect($data, $name) {
	
	$html ='<select name="'. $name .'" size="3" required>';

	foreach ($data as $key => $value) {
		$html .='<option>' . $value . '</option>';
	}

	$html .= '</select>';

	return $html;
}

$dados = array("verde" , "amarelo" , "azul" );
print(createSelect($dados, 'cores'));


$dados = array("gol" , "fiat" , "palio" );
print(createSelect($dados, 'carros'))

output

 

<select name="cores" size="3" required>
    <option>verde</option>
    <option>amarelo</option>
    <option>azul</option>
</select>
<select name="carros" size="3" required>
    <option>gol</option>
    <option>fiat</option>
    <option>palio</option>
</select>

Você pode controlar inumeras coisas, passando uma queryString pela url. Ou seja nada é impossivel.

Share this post


Link to post
Share on other sites

Vocẽ pode também pode utilizar Closures, vai deixar seu código mais organizado.
 

<?php
function createSelect($name)
{
	return function ($data) use ($name)
	{
		$html ='<select name="'. $name .'" size="3" required>';
		foreach ($data as $value) {
			$html .='<option>' . $value . '</option>';
		}
		$html .= '</select>';
		return $html;
	};
}


$create = createSelect('cores');
$data = $create(array("verde" , "amarelo" , "azul"));
print( $data );


$create = createSelect('carros');
$data = $create(array("gol" , "fiat" , "palio"));
print( $data );

Bons estudos @Biel.

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 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 />  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos EX1 e EX2 . EX1 nao tem parâmetro e exibe na tela todos os  valores de vez.
      Gostaria que EX2 tivesse três parâmetros ($email , $paixao , $meta) e que retornasse seus valores à partir da function e não apenas dar um echo na variável 
      EX 1<br /> <?php function exibirTodosDeVez(){ $email = 'teste@gmail.com<br />'; $paixao = 'aprender<br />'; $meta = "nunca desistir"; return ($email.$paixao.$meta); } print exibirTodosDeVez(); ?> <hr /> EX2<br /> <?php $email = 'teste@gmail.com<br />'; $paixao = 'aprender<br />'; $meta = "nunca desistir"; // quero usar apenas uma function para as três variavel e retornar o valor de cada variavel. Conseguir retornar somente o email function exibirIndividual($email){ echo '55'. $email; } echo exibirIndividual($email); ?>  
    • By Biel.
      .
    • By Biel.
      Olá pessoal. Direto ao ponto. 
      Pessoal o código abaixo replica o select normalmente com function sem necessidade de repetir select e itens html na integra 
      Alguém sabe dizer se é possível replicar o select abaixo (sem function) e (sem transformar select e itens em string?) 
      <?php function replicarSelectB(){?> <select name="cores" class="select_auto" required> <option></option> <?php $arrayCores = array("verde", "amarelo"); for($i=0; $i <count($arrayCores); $i++){ $exibe = $arrayCores[$i]; ?> <option value="<?php echo $exibe;?>" ><?php echo $exibe;?></option> <?php }//final for?> </select> <?php }//final function?> <br> <?php print(replicarSelectB());?><br /> <?php print(replicarSelectB());?>  
×

Important Information

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