Ir para conteúdo

POWERED BY:

Arquivado

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

leo_SJCampos

Preencher tabela(HTML) com valor do combo

Recommended Posts

Olá Galera... utilizei o exemlo do Júlio César Martini "Ajax e PHP - Carregando dados sem refresh" para fazer dois combos, o primeiro passando o valor para o segundo..

Os combos são.

 

Curso -> Turmas (Esta funcionando legal...)

 

Minha duvida é... como fazer um select para popular uma tabela logo abaixo desses combos, sendo que as condições desse select dependem dos valores retornados desse combo...

 

Me ajudem por favor... vou colocar o codigo abaixo para voce entenderem....

a parte que eu quero colocar o select esta comentada..

 

Valeu Galera....Obrigado....

 

<?
/*
----------------------------------------------------------------------
Arquivo .............: AJAX + PHP									 
Desenvolvido por ....: Júlio César Martini							
Matéria .............: Artigo 127 - www.imasters.com.br			   
Criado em  ..........: 14/03/2006									 
----------------------------------------------------------------------
*/

//CONECTA AO MYSQL			  
require_once("conecta.php");	

//PEGA OS ESTADOS 
$sql = "		  
		SELECT a.id_cursos, a.nome, a.tipo 
		FROM cursos a		  
		ORDER BY a.nome"; 

//EXECUTA A QUERY			   
$sql = mysql_query($sql);	   

$row = mysql_num_rows($sql); ?>

<script language="JavaScript">

   function Dados(valor) {
	  //verifica se o browser tem suporte a ajax
	  try {
		 ajax = new ActiveXObject("Microsoft.XMLHTTP");
	  } 
	  catch(e) {
		 try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		 }
		 catch(ex) {
			try {
			   ajax = new XMLHttpRequest();
			}
			catch(exc) {
			   alert("Esse browser não tem recursos para uso do Ajax");
			   ajax = null;
			}
		 }
	  }
	  //se tiver suporte ajax
	  if(ajax) {
		 //deixa apenas o elemento 1 no option, os outros são excluídos
		 document.forms[0].listCidades.options.length = 1;
		 
		 idOpcao  = document.getElementById("opcoes");
		 
		 ajax.open("POST", "cidades.php", true);
		 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		 
		 ajax.onreadystatechange = function() {
			//enquanto estiver processando...emite a msg de carregando
			if(ajax.readyState == 1) {
			   idOpcao.innerHTML = "Carregando...!";   
			}
			//após ser processado - chama função processXML que vai varrer os dados
			if(ajax.readyState == 4 ) {
			   if(ajax.responseXML) {
				  processXML(ajax.responseXML);
			   }
			   else {
				   //caso não seja um arquivo XML emite a mensagem abaixo
				   idOpcao.innerHTML = "--Primeiro selecione o estado--";
			   }
			}
		 }
		 //passa o código do estado escolhido
		 var params = "estado="+valor;
		 ajax.send(params);
	  }
   }
   
   function processXML(obj){
	  //pega a tag cidade
	  var dataArray   = obj.getElementsByTagName("cidade");
	  
	  //total de elementos contidos na tag cidade
	  if(dataArray.length > 0) {
		 //percorre o arquivo XML paara extrair os dados
		 for(var i = 0; i < dataArray.length; i++) {
			var item = dataArray[i];
			//contéudo dos campos no arquivo XML
			var codigo	=  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
			var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
			
			idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
			
			//cria um novo option dinamicamente  
			var novo = document.createElement("option");
				//atribui um ID a esse elemento
				novo.setAttribute("id", "opcoes");
				//atribui um valor
				novo.value = codigo;
				//atribui um texto
				novo.text  = descricao;
				//finalmente adiciona o novo elemento
				document.forms[0].listCidades.options.add(novo);
		 }
	  }
	  else {
		//caso o XML volte vazio, printa a mensagem abaixo
		idOpcao.innerHTML = "--Primeiro selecione o estado--";
	  }	  
   }

</script>

<html>
   <head>
	  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	  <link href="../css/css_sys.css" rel="stylesheet" type="text/css" />
	  <style type="text/css">
<!--
.up {text-transform:capitalize;}
-->
	  </style>
</head>
   
   <body>
 <p> </p>
  <form name="frmAjax">
<table border="0" align="center" class="tema">
<tr>
		   <th>Curso:</th>
		   <td><div align="left">
			 <select name="listEstados" onChange="Dados(this.value);">
			   <option value="0">Selecione o Curso</option>
			   <? for($i=0; $i<$row; $i++) { ?>
			   <option value="<? echo mysql_result($sql, $i, "id_cursos"); ?>"> <? echo mysql_result($sql, $i, "nome"); ?></option>
			   <? } ?>
			 </select>
		   </div></td>
		 </tr>
		 <tr>
		   <th>Turma:  </th>
		   <td><div align="left">
			 <select name="listCidades" onChange="alert(this.value);">
			   <option id="opcoes" value="0">Selecione a Turma</option>
			 </select>
		   </div></td>
		 </tr>
	   </table>
	<br>
   </form>
   
   
<table width="829" border="0" align="center" class="tema">
		<caption>
		<img src="../img/icones/page.png" height="16" /> Listagem de Alunos
		</caption>
		<tr>
		  <th width="77">RA</th>
		  <th width="137">Nome</th>
		  <th width="188">Curso</th>
		  <th width="130">Turma</th>
		  <th width="89">Telefone</th>
		  <th width="79">Celular</th>
		  <th width="41">mais</th>
		  <th width="52">Excluir</th>
		</tr>
		<? 
//AQUI É O SELECT QUE EU QUERO POPULAR COM O VALOR DO SEGUNDO COMBO   

$stmt=mysql_query("select * from alunos where turma = '1'");
   while($row=mysql_fetch_object($stmt))
{	
	$ra = $row->ra;
	$nome = $row->nome;
	$curso = $row->curso;
	$turma = $row->turma;
	$telefone = $row->telefone;
	$celular = $row->celular;
	$email = $row->email;
	$i++;
		if($i%2!=0)
			{ $string_class = "class=\"even\"";}
			else
			{ $string_class = "";}
		
	
?>
		<tr onMouseOver="java script:style.backgroundColor='#DEEDF5'" 
				  onmouseout="java script:style.backgroundColor=''" <? echo $string_class ?>>
		  <td><? echo $ra?></td>
		  <td><div align="left"><? echo $nome?></div></td>
		  <td class="up"><div align="left"><? echo $curso?></div></td>
		  <td><div align="left"><? echo $turma?></div></td>
		  <td><div align="left"><? echo $telefone?></div></td>
		  <td><div align="left"><? echo $celular?></div></td>
		  <td><a href="mostra_casa.php?id=<? echo $id?>"><img src="../img/icones/add.png" border="0" /></a></td>
		  <td><a href="excluir_imoveis.php?id=<? echo $id?>"><img src="../img/icones/delete.png" border="0" /></a></td>
		</tr>
		<? }?>
	  </table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, acho que ficou meio confuso né...

Vou ser mais objetivo.

 

O que eu preciso é... enviar um valor do javascrips para o php..

como posso fazer isso?

 

tenho a seguinte linha que me retorna:

document.forms[0].listCidades.options.add(novo);

como faço para atribuir esse novo em uma variavel php?

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.