Ir para conteúdo

POWERED BY:

Arquivado

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

hugomeirelles

[Resolvido] Receber dados de um select options

Recommended Posts

Saudações a todos.

Como a grande maioria, esta aqui mais um iniciante que procura aprimorar seus conhecimentos e abrir novos horizontes.

 

Bom,

Necessito de ajuda em relação a como devo fazer para receber dados de um select options (ComboBox)

de uma pagina qualquer?

 

Usei o metodo $_POST['combobox'] por exemplo, mas quando recupero o valor do objeto por esse metodo, ele me retorna o texto da opton e não o valor da propriedade "VALUE" do objeto.

Ex:

<select name='combobox'>

<option value='1'>texto 1</option>

<option value='2'>texto 2</option>

</select>

 

Para receber

$item = $_POST['combobox'];

echo $item;

 

Ao usar o metodo mencionado ele me retorna "texto 1" e não "1", coso selecione "texto 1".

 

Como faço?

 

Obrigado pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho...

 

pode testar:

<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
<title>Teste</title>
</head>
<body>

<?php

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
	echo "<h1>" . $_POST['combo'] . "</h1>";
}

?>

<form method='post' action=''>
<select name='combo'>
	<option value='1'>Valor 1</option>
	<option value='2'>Valor 2</option>
</select>
<input type='submit' value='enviar' />
</form>

</body>
</html>

Aparece "1" ou "2", não "valor 1" ou "valor 2"

 

Poste o script completo que você está usando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Antes de mais nada obrigado pela atenção e por responder o post.

 

Seguinte,

 

tenho uma pagina inicial o qual chamei de index.php

que possiu o form chamado IndexSenha.

bom como o cádigo não é muito grande vou posta-lo inteiro.

Fiz um javascript somente para efeito de debuguer e verificar valores usando os comandos

window.location.href = "Menu.php?CoRegional="+document.IndexSenha.escolas.options[document.IndexSenha.escolas.selectedIn

dex].values;

e consegui enchergar os valores da propriedade values do objeto. Mesmo utilizando o script citado utilizando o metodo window.location.href ainda não consegui capturar seus valores na pagiana Menu.php.

Criei alguns objetos relacionado com os atores e seus principais casos de uso e ja os testei bastente antes até mesmo de começar a trabalhar na camada de apresentaçao estou tentando trabalhar no modelo MVC, porem não utilizo a zend framework, somente criei minha camada de negocio seperada da de apresentação e persistência de dados.

O codido dessa pagina submet os dados do usuario para serem validados na pagina Menu.php

 

 

 

Menu.php

<HTML>
<HEAD>
 <TITLE>Validação</TITLE>
 
 <script laguage='javascript'>
   function Mensagem(Texto){
	 window.alert(Texto+" de script");
	 if (window.confirm("Abrir diario...")){//Retorna verdadeiro se pressionar ok.
	   window.location.href = "PageDiario.php?page='Index.php'";
	 }
   }
   
   function EnviarDados(){

	 var CoRegional;
	 var CoUnidade;
	 var AnoSem;
	 
	 CoUnidade = document.IndexSenha.escolas.options[document.IndexSenha.escolas.selectedIndex].v
alues;
	 
	 window.location.href = "Menu.php?CoRegional="+document.IndexSenha.escolas.options[document.IndexSenha.escolas.selectedIn
dex].values;
   }
 </script>
   <link rel="stylesheet" type="text/css" href="../css/styleshets.css" />

</HEAD>
<BODY onload="document.IndexSenha.login.focus()"> <center>
<?php
  include_once("../Classes/Periodo.php");
  include_once("../Classes/Regional.php");
  include_once("../Classes/Unidades.php");
?>
  <form  name="IndexSenha" action="Menu.php" method="POST">
	<table width="20%" align="center" border=0>
	  <tr>
		<td>Usuário</td>
		<td>
		  <INPUT size="15" name="login">
		</td>
	  </tr>
	  <tr>
		<td>Senha:</td>
		<td>
		  <INPUT size="15" name="senha" type="password">
		</td>
	  </tr>
	  <tr>
		<td>
		   Periódo Letivo<br>
		</td>
		<td>
		   <?php
			 $User = new Periodo();
			 
			 $ResPeriodo = $User->GetPeriodos();
			 
			 echo "<select name='periodo'>";
			   while ($DadosPeriodo = mysql_fetch_array($ResPeriodo)){
				 echo "<option value='".$DadosPeriodo['ANO_SEM']."'>".$DadosPeriodo['ANO_SEM']."</option>";
			   }
			 echo "</select>";
		   ?>
		</td>
	  <tr>
		<td>
		   Regional.
		</td>
		<td>
		  <?php
			$Reg = new Regional();
			$Res = $Reg->GetRegionais();
			
			echo "<select name='regional'>";
			  while ($Dados = mysql_fetch_array($Res)){
				echo "<option values='".$Dados['CO_REGIONAL']."'>".$Dados['DS_REGIONAL']."</option>";
			  }
			echo "</select>";
		  ?>
		</td>
	  </tr>
	  <tr>
		<td>
		  Escola:
		</td>
		<td>
		  <?php
			$Escola = new Unidades();
			$Res = $Escola->GetUnidades();
			
			echo "<select name='escolas'>";
			  while ($Dados = mysql_fetch_array($Res)){
				echo "<option values='".$Dados['CO_UNIDADE']."'>".$Dados['DS_UNIDADE']."</option>";
			  }
			echo "</select>";
		  ?>
		</td>
	  </tr>
	  <tr>
		<td colspan=2 align=center>
		  <INPUT type="submit" value="Entrar"><br>
		  <INPUT type="button" value="ok" onclick="EnviarDados()">
		</td>
	  </tr>
	  </tr>
	</table>
  </form>
</BODY>
</HTML>

 

 

Menu.php

<HTML>
<HEAD>
   <link rel="stylesheet" type="text/css" href="../css/styleshets.css" />
 <TITLE>Menus</TITLE>
</HEAD>
<BODY>
<?php
  include_once("../Classes/Usuarios.php");
?>

<?php
   //Esse trecho de codigo eu utilizei para ver se conseguia capturar o valor da variavel
   //que enviei via java script com o metodo window.location.href
   //Sem sucesso :(
   //echo $_POST['AnoSem'];
   
   //Desta vez tentei criar um nome de variavel que fosse igual ao que enviei via url
   //com o metodo window.location.href
   //Sem sucesso :(
  //echo $CoUnidade;

  //Esse trecho de codito funciona quando uso o botão submit
  $User = $_POST['login'];
  $Pass = $_POST['senha'];
  $AnoSem = $_POST['periodo'];
  //--------------------------------------------------------
  
  //Esse trecho de codigo traz somento o valor da propriedade text do
  //objeto select options selecionado.
  $CoRegional = $_POST['regional'];
  $CoUnidade = $_POST['escolas'];
  //------------------------------------------------------------------

  session_name('DataUser');
  session_start();
  
  $_SESSION['login'] = $User;
  $_SESSION['senha'] = $Pass;
  //Quando vou tranferir os valores dessas variaveis
  //que são oriundas dos objetos select que tenho na page Index.php,
  //verifivo que o valor recuperado é o valor da propriedade text do objeto, e não
  //o valor da propridade value.
  $_SESSION['ANO_SEM'] = $AnoSem;
  $_SESSION['CO_REGIONAL'] = $CoRegional;
  $_SESSION['CO_UNIDADE'] = $CoUnidade;
  
  session_write_close();
   //Codito utilizado para efeito de debuguer
   //somente verificar falores
   //Esta funcinando normal
  //echo "Hugo<br>".$_SESSION['login']."<br>";
  //-----------------------------------------
  
  $User = new Usuarios($User, $Pass);
  
  if ($User->Validar()){
	echo "<a href='PageDiario.php'>Abrir Diário<a><br>";
  }
  else{
	echo "Usuario desconhecido";
  }
  
  echo "<a href='Alunos.php'>Alunos<a><br>";
  echo "<a href='Turmas.php'>Turmas<a><br>";
  echo "<a href='Funcionarios.php'>Professores<a><br>";
  
?>
</BODY>
</HTML>

Mais uma vez muito obrigando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri o problema!

foi problema de bizonhice.

escrevi value com s no final values.

Pelo menos agora eu sei que quando a propriedade value for omitida, o valor da propriedade text so select é envidado.

Caso encerrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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