Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Barbosa

[Resolvido] abri duas telas num mesmo formulário.

Recommended Posts

Estou fazendo um módulo onde uso um DROP DOW, seleciono o item escolhido, minha intensão é logo depois q o digitador escolha o item abrir uma tela abaixo para que o usuário digite alguns dados, tentei usar o FRAMESET e pelo que vi ñ serve pois ele já deixar as telas abertas quando acesso o módulo. Estou tentando usar o window.open, usando a seguinte sintaxe:

<input type="submit" value="OK" onclick="javascript:window.open('cad_resultado1.php','cad_resultado1','height=50 width=50 aling=center')">.

Aqui ele até abre a janela, mas a variável que preciso usar na tela seguinte para fazer algumas buscas não é reconhecida na janela aberta.

alguém tem alguma forma que possa me indicar.

Nesse código não uso o form pq uso abaixo o window.open

Coloquei uma variável escondida, mas mesmo assim ñ funcionar.

 

Vou colocar o código para que vocês possam analisar:

<tr>
  <td> <a name="codigo_exa">Tipo de Exame</a>:
   <select name="codigo_cat" size="1" id="codigo_cat>">
      <option value='' selected="selected"></option>
	<?php
	  include ("conexao.php");
	  $sql="select * from categoria order by descriscao_cat ASC";
	  $rs=mysql_query($sql) or die ("Problemas ao acessar a tabela de CATEGORIA ".mysql_error());
	     				
	  while($linha=mysql_fetch_array($rs)) {
	     $codigo_cat=$linha["codigo_cat"];
	     $descriscao_cat=$linha["descriscao_cat"];
	     $descriscao_cat=htmlentities($linha["descriscao_cat"]);
	     $descriscao_cat=html_entity_decode($descriscao_cat, ENT_QUOTES);
                            
	     echo "
      		<option value='$codigo_cat'>$descriscao_cat</option>";
	  }
	?>	
    </select>
    <input type="hidden" name="codigo_cat" value="<?php echo $codigo_cat; ?>">   
    <input type="submit" value="OK" onclick="javascript:window.open('cad_resultado1.php','cad_resultado1','height=50 width=50 aling=center')"> 
  </td> 
</tr>

No cad_resultado1.php, recebo a variável da seguinte forma:

$codigo_cat=$_POST["codigo_cat"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite,

 

tente

 

<input type="submit" value="OK" onclick="javascript:window.open('cad_resultado1.php?codigo_cat=' + document.getElementById('codigo_cat').value,'cad_resultado1','height=50 width=50 aling=center')">.

e pegue a variavel peor GET.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Marcos!

 

Você está tentando exibir uma combobox e conforme a seleção exibir uma janela embaixo com algum formulário?

 

Tentou ver algum recurso de ajax com Jquery?

É bem simples.

 

Se for isso, posso te ajudar.

 

^_^/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso mesmo, e nessa janela vou cadastrar alguns itens, exemplo

No combobox escolho a categoria de exames, que pode ser : BIOQUIMICO, ENDOCRINOLOGIA e outros.

Para categoria BIOQUIMICO exitem os exames: SANGUE, COLESTEROL e assim vai.

Então ao ecolher a categoria BIOQUIMICO eu preciso abrir uma tela com todos os TIPOS DE EXAMES relacionado a categoria para que sejam digitados os resultados.

Bem parece simples mas eu ñ estou conseguindo fazer. Ainda ñ tentei fazer com o AJAX até mesmo por falta de conhecimento se você puder me ajudar agradeço e muito. Inclusive se puder indicar livros ou apostilas é muito bom.

 

Grato

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie!

Então, explora melhor a biblioteca jquery

Ela facilita muitos recursos, inclusive a manipulação de códigos ajax.

 

 

 

O script abaixo me ajudou muito, pena que eu não lembro o site que eu baixei.

(Peço desculpas ao autor :(/>)

 

Vamos lá

 

Crie um arquivo index.html ou index.php e insira o código abaixo.

 

 

 

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
	<title>Combos Dinamicos com JQuery</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!-- ligacao com o plugin JQuery -->
	<script type="text/javascript" src="jquery.js"></script>
	<!-- Script para envio/recebimento dos dados -->
	<script type="text/javascript">
	function combo(id,target){
 	$.ajax({
 	type: "POST",
 	url: "combodinamico.php",
 	data: "id=" + id,
 	beforeSend: function() {
 	// enquanto a função esta sendo processada, você
 	// pode exibir na tela uma ...
 	$(target).html('Processando...'); // ...mensagem de espera
 	},
 	success: function(txt) { // executa quando o servidor responde
 	// Pego a div co id = combo2 que está dentro de um select
 	// e substituo seu conteudo com o texto enviado pelo php
 	$(target).html(txt);
 	},
 	error: function(txt) { // executa quando não responde ou envia um erro
 	// em caso de erro você pode dar um alert('msg erro');
 	alert('Desculpe, houve um erro interno.');
 	}
 	});
	}
	</script>
 </head>
 <body>
 	<p>Combo Dinâmico</p>
 	<form action="" name="combo_dinamico">
 	<p> Escolha uma opção para ver no select abaixo uma resposta</p><p>
 	<select name="combo1" onchange="combo(this.value,'#combo2')">
 	<option value="">Escolha</option>
 	<option value="1">Exemplo 01</option>
 	<option value="2">Exemplo 02</option>
 	</select>
 	</p><p>
 	COMBO2
 	<div id="combo2">
 	<select>
 	<option>Respostas</option>
 	</select>
 	</div>
 	<br/>COMBO 3<br/>
 	<div id="combo3">
 	<select>
 	<option>Respostas</option>
 	</select>
 	</div>
 	</p>
	</form>
 </body>
</html>

Parte 1

 

Tem mais uma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um código pra te ajudar a entender.

Como ele não acessa a banco, é bem provável que não dê erro, beleza?

Mas você consegue adaptar através do arquivo abaixo.

 

Agora a mágica.

 

Crie o arquivo combodinamico.php

 

<?php

$id = $_REQUEST['id'];
switch($id){
/**
 * Como voce pode notar, as respostas serao de acordo com
 * o id enviado, que na verdade é o valor do select
 * <option value="x">
 */

case '1':
$opcoes = '
<select name="combo02" onchange="combo(this.value,\'#combo3\')">
<option value="1"> Resposta EX_1.1 </option>
<option value="1"> Resposta EX_1.2 </option>
<option value="1"> Resposta EX_1.3 </option>
<option value="1"> Resposta EX_1.4 </option>
<option value="1"> Resposta EX_1.5 </option>
</select>
';
break;
case '2':
/*/
aqui esta a diferenca: agora o select criado vai com a
definicao do "proximo alvo", que neste caso é o combo 3.
/*/
$opcoes = '
<select name="combo02" onchange="combo(this.value,\'#combo3\')">
<option value="21">COMBO 3</option>
<option value="10"> Resposta 2.2 </option>
<option value="10"> Resposta 2.3 </option>
<option value="10"> Resposta 2.4 </option>
<option value="10"> Resposta 2.5 </option>
</select>
';
break;
case '21':
$opcoes = '
<select name="combo03" >
<option value="1"> Resposta 3.1 </option>
<option value="1"> Resposta 3.1.2 </option>
<option value="1"> Resposta 3.1.3 </option>
<option value="1"> Resposta 3.1.4 </option>
<option value="1"> Resposta 3.1.5 </option>
</select>
';
break;

default:
$opcoes = '
	<select name="NoRes">
 	<option>Sem resposta</option>
</select>
';
break;
}

echo($opcoes);

?>


Jquery funciona através de id em tags html, ou do próprio nome, mas a chamada é diferente aí.

Nesse último arquivo, você pode implementar um select conforme o id que é passado e ir montando o combo.

 

Aviso, qdo recarregar a página, a seleção vai sumir e terá que executar de novo a seleção.

 

Testa aí e vou tirando as dúvidas que eu conseguir, beleza?

 

Não esquece de baixar a biblioteca jquery.js, ok?

 

 

http://jquery.com

 

E pra você conhecer..

 

http://jqueryui.com/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elane, agradeço a sua ajuda, hoje, ficarei distante do pc quase que o dia inteiro, mas apartir de amanhã retornarei e com toda certeza precisarei de sua ajuda.

 

Entrei no site http://jquery.com onde faço o download, quando clico no botão DOWNLOAD (JQUERY) ele abre um arquivo, eu preciso colar e copiar esse arquivo ?

 

Grato...

Compartilhar este post


Link para o post
Compartilhar em outros sites

De boa!

A net tá lenta aqui também!

 

É assim, você baixa a versão mínima (ela é só compactada) e coloca no mesmo diretório que você vai por os dois arquivos acima.

Ou, qualquer coisa, muda o path no index

 

<script type="text/javascript" src="jquery.js"></script>

 

Ah, tem que renomear o arquivo, ou então, altera o nome nessa parte do código.

Ele é como o "include" do php, só que pra javascript.

 

beleza?

 

Até +

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elaine, me desculpe a falta de compreensão, mas verificado o código, ñ consegui entender como através dele poderei abrir uma nova janela.

Pois o problema que estou enfrentando é esse, ao abrir a janela com o window.open a variável não é reconhecida nessa janela.

 

Mais uma vez agradeço a sua atenção e boa vontade.

Grato,

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi

 

Talvez seja um pouco diferente então

 

O código q eu mostrei dá pra adaptar e você criar um combo que conforme seleção, exibe um form, embaixo.

 

você precisa que abra outra janela?

 

 

Talvez eu demore um pouco para responder.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, deixa eu te explicar o q estou tentando fazer.

 

No combobox escolho a categoria de exames, que pode ser : BIOQUIMICO, ENDOCRINOLOGIA e outros.

Para categoria BIOQUIMICO exitem os tipos de exames: SANGUE, COLESTEROL e assim vai.

Então ao ecolher a categoria BIOQUIMICO (combobox) eu preciso abrir uma tela com todos os TIPOS DE EXAMES relacionado a categoria para que sejam digitados os resultados, após a conclusão da digitação dos resultados o digitador clicar no botão de gravar, então a janela fecha e retorna pra ele escolher outra CATEGORIA e assim por diante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, acho q entendi o q você quer fazer.

Dps do almoço te mostro como o exemplo de código pode te ajudar.

 

Se nao for o q você quer, de boa, essa parte de pop up eu não me dou mto bem. rsrs

Mas aí pode aparecer outra pessoa, beleza?

 

você quer q no mesmo submit inclua os dados das duas janelas, né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao era só armazenar em sessão ?

pq quando você recebe isso:

$codigo_cat=$_POST["codigo_cat"];

você declara uma sessão pra ela:

session_start(); // esse comando eh o primeiro no seu código php
$_SESSION['codigo'] = $codigo_cat;

E na pop up nao precisa enviar nenhum parametro, eh soh pegar a sessão registrada

você faz o window.open normal abrindo e tals.... e chama a sessão

echo $_SESSION['codigo'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao ? Pq ??

Melhor do que passar por parametro o código da pessoa ou coisa parecida.

Ou utiliza COOKIES.. o problema soh eh o navegador do usuário nao estar habilitado para receber cookies. =/

 

Mas sessão eh uma saída =) a mais facil pelo que eu vejo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive dor de cabeça com isso

Dee, se você quiser ajudar o Marcos, fica a vontade ^^

 

De boa, beleza?

 

É q só vou poder ajudar de tarde

 

Dps eu posto aí só pra add informação né

 

T+

 

Nao ? Pq ??

Melhor do que passar por parametro o código da pessoa ou coisa parecida.

Ou utiliza COOKIES.. o problema soh eh o navegador do usuário nao estar habilitado para receber cookies. =/

 

Mas sessão eh uma saída =) a mais facil pelo que eu vejo.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie! Voltei! rsrs

 

Então..

 

sobre sessão...

aconteceu comigo uma vez

o ie 7 não deixava criar sessão qdo usava frame, etc.. tipo, server de terceiro

aí não tava salvando certo

 

tinha que colocar uma variavel especifica pro ie aí já viu né

 

por isso depende do caso =D

 

 

Hum.. lost.. não assisti ainda xD

 

sei que tinha um videogame que tinha meu nome NAOMI =D

 

 

 

Tranquila Naoni, seu nome me lembra uma personagem do Lost :D/>

Eu só dei uma idéia =)

 

Vamos, lá

 

 

Marcos, vê se isso te serve

 

Cria o arquivo index.php primeiro

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
	<title>Combos Dinamicos com JQuery</title>
	
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	
	<!-- ligacao com o plugin JQuery -->
	<script type="text/javascript" src="jquery.js"></script>
	
	<!-- Script para envio/recebimento dos dados -->
	<script type="text/javascript">
	function form_tipo_exame(valor){
	
 	$.ajax({
		
 	type: "POST",
 	url: "form_exame.php", // arquivo que vai receber requisição
 	data: "tipo_exame=" + valor, // parametros (variavel = valor)
		
 	beforeSend: function() {
			// enquanto a função esta sendo processada, você
			// pode exibir na tela uma ...
			$("#tipo_exame").html('Processando...'); // ...mensagem de espera
 	},
		
 	success: function(txt) { 
			// executa quando o servidor responde
			// Pego a div co id = combo2 que está dentro de um select
			// e substituo seu conteudo com o texto enviado pelo php
			$("#tipo_exame").html(txt);
 	},
 	error: function(txt) { 
			// executa quando não responde ou envia um erro
			// em caso de erro você pode dar um alert('msg erro');
			alert('Desculpe, houve um erro interno.');
 	}
		
 	});
	}
	</script>
 </head>
 <body>
	<form method="post" action="recebe.php">
 
 	<p> Categoria </p>
			
			<select name="categoria" onchange="form_tipo_exame(this.value)">
				<option value="0">Escolha</option>
				<option value="1">BIOQUIMICO</option>
				<option value="2">ENDOCRINOLOGIA </option>
			</select>
 	
		<p>Tipo de Exame</p>
			
			<div id="tipo_exame"></div>
			
 	

		<input type="submit" name="submit" value="Ok" />
		
	</form>
 </body>
</html>

 

 

sim, deixa eu te explicar o q estou tentando fazer.

 

No combobox escolho a categoria de exames, que pode ser : BIOQUIMICO, ENDOCRINOLOGIA e outros.

Para categoria BIOQUIMICO exitem os tipos de exames: SANGUE, COLESTEROL e assim vai.

Então ao ecolher a categoria BIOQUIMICO (combobox) eu preciso abrir uma tela com todos os TIPOS DE EXAMES relacionado a categoria para que sejam digitados os resultados, após a conclusão da digitação dos resultados o digitador clicar no botão de gravar, então a janela fecha e retorna pra ele escolher outra CATEGORIA e assim por diante.

 

Parte dois agora

 

Cria o form_exame.php

 

<?php

$tipo_exame = $_REQUEST['tipo_exame'];

if(!empty($tipo_exame) && $tipo_exame != 0){
	
	// EXEMPLO
		// $select = "SELECT * FROM tbl_tipo_exame WHERE categoria = ".$tipo_exame;
		// faz a consulta
		// pega os valores
		// monta um for,foreach, etc
		// e qdo der o submit, os valores vão tbm
		// OBS.: não esqueça de conferir se os valores realmente existem, ok?
		
		// EXEMPLO PRÁTICO 
		// CASO USE o select, não precisa desses if, ok? o retorno já vem certo
		
		if($tipo_exame == 1)
		{ 
?>

			<table borde="0">
			<tr>
				<td>SANGUE</td>
				<td><input name="Id[1]" value="" /></td>
			</tr>
			<tr>

				<td>COLESTEROL</td>
				<td><input name="Id[2]" value="" /></td>
			</tr>
			</table>
			

		
			
<?php	}elseif($tipo_exame == 2){ ?>	
			<table border="1">
				<tr>
					<td> 
						Sem exames cadastrados
					</td>
				</tr>
			</table>
			
<?php	}else{ ?>

			<table border="1">
				<tr>
					<td> 
						Opção inválida
					</td>
				</tr>
			</table>
		
		

	<?php } ?>
		

<?php }else{ ?>

	<table border="1">
		<tr>
			<td> 
				Opção inválida
			</td>
		</tr>
	</table>
	
<?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.