Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • 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.