Ir para conteúdo
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>

 

Compartilhar este post


Link para o post
Compartilhar em outros 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>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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 

Compartilhar este post


Link para o post
Compartilhar em outros 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

 

Compartilhar este post


Link para o post
Compartilhar em outros 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>

 

Compartilhar este post


Link para o post
Compartilhar em outros 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>

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Biel.
      Olá pessoal. Ao digitar um texto qualquer no input e pressionar submit o valor do atributo href é alterado temporariamente. Como alterar permanentemente no corpo do documento  o valor do atributo href, digitando um nome de link qualquer no campo input e em seguida submit ?
      <!DOCTYPE html> <html> <head> <style> input { width: 100%; font-size: 20px; } textarea { width: 100%; font-size: 16px; height: 200px; } .class88 { margin-top: 50px; padding: 10px; max-width: 100px; } </style> </head> <body> <h2> alterar valor do atributo href</h2> digite um texto qualquer <input type="text" class="class42" value=""> <a id="linkToChange" href="teste5.php" class="class43"></a> <input type="submit" class="class88" value="enviar" onclick="alterarHref()"> <script> function alterarHref() { // pega o valor da class42 var valorDaclass42 = document.querySelector('.class42').value.trim(); // altera o valor do atributo href para o valorDaclass42 sugerido document.querySelector('.class43').setAttribute('href', valorDaclass42); console.log("Href alterado:", valorDaclass42); } </script> </body> </html>  
    • Por Biel.
      Olá pessoal. BannerA está funcionando normalmente. Como usar mesmo script para bannerB e bannerC.
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Banner Aleatório</title> <style> /* Estilos opcionais para o banner */ #divPai { margin: auto; border: 2px solid red; } #bannerA { width: 240px; height: 480px; overflow: hidden; position: relative; } #bannerA img { width: 100%; height: auto; position: absolute; top: 0; left: 0; transition: 1.5s ease-in; } #bannerA img.active { opacity: 1; } </style> </head> <body> <div id="divPai"> <div id="bannerA" class="bannerA"> <a href="link1"><img src="image1.jpg" alt="Imagem 1"></a> <a href="link2"><img src="image2.jpg" alt="Imagem 2"></a> <a href="link3"><img src="image3.jpg" alt="Imagem 3"></a> </div> <!-- <hr> <div id="bannerB" class="bannerB"> <a href="link4"><img src="image4.jpg" alt="Imagem 4"></a> <a href="link5"><img src="image5.jpg" alt="Imagem 5"></a> <a href="link6"><img src="image6.jpg" alt="Imagem 6"></a> </div> <hr> <div id="bannerC" class="bannerC"> <a href="link7"><img src="image7.jpg" alt="Imagem 7"></a> <a href="link8"><img src="image8.jpg" alt="Imagem 8"></a> <a href="link9"><img src="image9.jpg" alt="Imagem 9"></a> </div> --> </div> <hr> <script> document.addEventListener("DOMContentLoaded", function() { // var banner = document.getElementById("divPai"); // var images = banner.querySelectorAll("img"); var images = document.querySelectorAll("#bannerA img"); // Função para exibir uma imagem aleatória function showRandomImage() { // Escolhe aleatoriamente um índice de imagem var randomIndex = Math.floor(Math.random() * images.length); // Define todas as imagens como ocultas images.forEach(function(img) { img.style.display = "none"; }); // Exibe a imagem aleatória images[randomIndex].style.display = "block"; } // Chama a função inicialmente e define um intervalo para exibir novas imagens a cada 3 segundos showRandomImage(); setInterval(showRandomImage, 1000); // makeSliderKind('.bannerA', 1000); // makeSliderKind('.bannerB', 2000); // makeSliderKind('.bannerC', 3000); }); </script> </body> </html>  
    • Por Biel.
      Olá pessoal. O banner abaixo está funcionando e o link acompanha o banner, até aqui tudo ok ! Quero muito fazer uma transição suave entre uma image e outra, colocando as propiedades e valores no css ou diretamente no javascript e nada de propiedades e valores no html através do style . Se possível coloque no código somente o que precisa . Obrigado!
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Banner</title> <style> /* Estilos opcionais para o banner */ .banner { width: 240px; height: 480px; overflow: hidden; position: relative; } .banner img { width: 100%; height: auto; position: absolute; top: 0; left: 0; transition: 1.5s ease-in; } .banner img.active { opacity: 1; } </style> </head> <body> <div class="banner" id="banner"> <a href="link1" class="ggg"><img src="image1.jpg" alt="Imagem 1"></a> <a href="link2" class="ggg"><img src="image2.jpg" alt="Imagem 2"></a> <a href="link3" class="ggg"><img src="image3.jpg" alt="Imagem 3"></a> <a href="link4" class="ggg"><img src="image4.jpg" alt="Imagem 4"></a> <a href="link5" class="ggg"><img src="image5.jpg" alt="Imagem 5"></a> </div> <script> document.addEventListener("DOMContentLoaded", function() { var banner = document.getElementById("banner"); var images = banner.querySelectorAll("img"); // Função para exibir uma imagem aleatória function showRandomImage() { // Escolhe aleatoriamente um índice de imagem var randomIndex = Math.floor(Math.random() * images.length); // Define todas as imagens como ocultas images.forEach(function(img) { img.style.display = "none"; }); // Exibe a imagem aleatória images[randomIndex].style.display = "block"; } // Chama a função inicialmente e define um intervalo para exibir novas imagens a cada 3 segundos showRandomImage(); setInterval(showRandomImage, 3000); }); </script> </body> </html>  
       
    • Por Biel.
      Olá pessoal. O banner abaixo está funcionando normalmente, mas a transição entre uma imagem e outra está um tanto truculenta. Quero deixar suave. Como resolver isso? Obrigado !
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>transition suave entre uma image e outra</title> <style> #banner { width: 240px; height: 480px; overflow: hidden; position: relative; } #bannerGG { width: 100%; height: auto; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 1s ease-in-out; } /* #tete:active { opacity: 1; } */ </style> </head> <body> <div id="banner"> <img class="bannerGG" src="imagem1.png" alt="Image 1"> <img class="bannerGG" src="imagem2.png" alt="Image 2"> <img class="bannerGG" src="imagem3.png" alt="Image 3"> <img class="bannerGG" src="imagem4.png" alt="Image 4"> <img class="bannerGG" src="imagem5.png" alt="Image 5"> </div> <script> const image = document.querySelectorAll('.bannerGG'); const banner = document.getElementById('banner'); function showRandomImage() { const randomIndex = Math.floor(Math.random() * image.length); const randomImage = image[randomIndex]; const imgElement = document.createElement('img'); imgElement.src = randomImage.src; const linkElement = document.createElement('a'); linkElement.appendChild(imgElement); banner.innerHTML = ''; banner.appendChild(linkElement); } showRandomImage(); setInterval(showRandomImage, 3000); </script> </body> </html>  
    • Por Biel.
      Olá pessoal. O banner abaixo está funcionando, mas quero que o link do banner venha da tag a  e não do javascript . Como resolver? 
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mostrar link do banner que está na tag a</title> <style> #banner { width: 240px; height: 480px; overflow: hidden; position: relative; } .banner-img { width: 100%; height: 100%; object-fit: cover; position: absolute; /* opacity: 0; */ transition: opacity 0.5s ease-in-out; } .banner-link { display: block; width: 100%; height: 100%; } </style> </head> <body> <div id="banner"> <a href="link147"><img class="banner-img" src="imagem1.png" alt="Image 1"></a> <a href="link254"><img class="banner-img" src="imagem2.png" alt="Image 2"></a> <a href="link350"><img class="banner-img" src="imagem3.png" alt="Image 3"></a> <a href="link462"><img class="banner-img" src="imagem4.png" alt="Image 4"></a> <a href="link538"><img class="banner-img" src="imagem5.png" alt="Image 5"></a> </div> <script> const images = document.querySelectorAll('.banner-img'); const banner = document.getElementById('banner'); function showRandomImage() { const randomIndex = Math.floor(Math.random() * images.length); const randomImage = images[randomIndex]; const imgElement = document.createElement('img'); imgElement.src = randomImage.src; imgElement.alt = randomImage.alt; imgElement.classList.add('banner-img'); const linkElement = document.createElement('a'); // linkElement.appendChild(imgElement); linkElement.href = randomImage.href; linkElement.classList.add('banner-link'); linkElement.href = "page" + (randomIndex + 1) + ".html"; // Link para cada imagem linkElement.appendChild(imgElement); banner.innerHTML = ''; banner.appendChild(linkElement); } showRandomImage(); setInterval(showRandomImage, 1000); </script> </body> </html> Resolvido,  Obrigado a todos !
×

Informação importante

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