Como verificar qual a href foi clicado e mandar uma session através disso

13/11/2017

0

PHP

Boa tarde, gostaria de verificar qual a href foi clicado pelo usuário e a partir disso mandar uma session com um nome por exemplo:

<li><a href="hist.php" onClick="<?php $_SESSION["hist"] = 'prova de quimica';?>">Quimica</a>
	 </li>
	 
	 <li><a href="hist.php" onClick="<?php $_SESSION["hist"] = 'prova de fisica';?>">Fisica</a>
	 </li>
	 
	 <li><a href="hist.php" onClick="<?php $_SESSION["hist"] = 'prova de portugues';?>">Portugues</a>
	 </li>

Se clicar em quimica, iria para o hist.php e mandaria a session hist para prova de quimica, se clicasse em fisica mudaria para prova de fisica e assim faria um select com essa session.
Mas ao fazer isso, está pegando apenas a ultima session, no caso a de portugues independente de qual a href clicar. Alguém sabe onde está meu erro ? Ou como solucionar ?
Vinicius

Vinicius

Responder

Post mais votado

14/11/2017

Bom dia, Vínicius! Já responderam que bacana. :)
Mas vou postar só para considerar.. Acredito que não seria necessário criar sessões para gerenciar essas requisições.. É um código simples que com if e else.. você resolve :)



HTML


<!DOCTYPE html>
<html>
<head>
	<title>Consultando Prova</title>
</head>
<body>
	<p><a href="sessao.php?prova=quimica" name="quimica">Prova de Química</a></p>
	<p><a href="sessao.php?prova=fisica" name="fisica">Prova de Física</a></p>
	<p><a href="sessao.php?prova=portugues" name="portugues">Prova de Portguês</a></p>
</body>
</html>





PHP

<?php
	
	if(isset($_GET['prova']) && $_GET['prova'] != ""){
		switch($_GET['prova']){
			case 'quimica': 
				quimica();
				break;
			case 'fisica' : 
				fisica();
				break;
			case 'portugues': 
				portugues();
				break;			
		}
	}
	
	function quimica(){
		echo 'Prova de Química';
	}
	
	function fisica(){
		echo 'Prova de Física';
	}
	
	function portugues(){
		echo 'Prova de Português';
	}

?>

Marcelo Santana

Marcelo Santana
Responder

Mais Posts

14/11/2017

Alex William

Lembre-se de uma coisa: PHP é lido pelo navegador antes do HTML, então quando sua pagina lê seu código, ele vai setando a session antes de montar o html. Quando ele vai montar o HTML ele pega o ultimo valor da session e coloca em todos os onclick.

Uma forma de fazer, é usando GET no href, mandando o tipo de prova na URL:

<li><a href="hist.php?prova=quimica">Quimica</a>
	 </li>
	 
	 <li><a href="hist.php?prova=fisica">Fisica</a>
	 </li>
	 
	 <li><a href="hist.php?prova=portugues">Portugues</a>
	 </li>


Então na sua página hist.php, nas primeira linhas você seta a session:

$_SESSION["hist"] = "prova de ".$_GET['prova']
Responder

14/11/2017

Marcelo Santana

obs: pode desconsiderar o name, no link.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar