Ir para conteúdo

POWERED BY:

Arquivado

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

renatagramos

[Resolvido] Fazer resultado de pesquisa aparecer em nova página

Recommended Posts

Pessoal,

 

Estou com um problema aparentemente simples, mas eu não sei resolver :(

 

Tenho um formulário que consulta o banco mysql e exibe um relatório. Isso está funcionando perfeito!

 

Acontece que quero que esse relatório seja exibido em uma nova página FORMATADA, não um simples "target=_blank". Consegui fazer a nova página abrir, mas o resultado não aparece nela e sim na página atual!

 

O formulário é esse:

 

<form id="sql_consulta_campo" method="get" name="sql_consulta_campo" action="sql_consulta_campo.php">
<table align="center" width="600" border="0" cellspacing="5" cellpadding="5">
<tr>
<td width="180px" valign="middle" align="left"><font face="arial" size="1">ARGUMENTO:</font></td>
<td width="250px" align="left"><input name="cli_razao" type="text" id="cli_razao" size="40" maxlength="30"></td>
<td width="220px" align="right">
<button name="consultar" id="consultar" type="submit" align="right" onClick="window.showModalDialog('sql_consulta_campo.php?id=$table','Relatório', 'width=600,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');"/>
</td>
</tr>
</table>
</form>

 

E a busca é essa:

 

<?php
include "../../config.php"; //inclui o arquivo de conexão

session_start(); // começa a session

if(!isset($_SESSION["login"])){
echo "ACESSO NEGADO";
}else{

$login = $_SESSION["login"];
$sql = mysql_query("SELECT * FROM login WHERE login='$login'") or die("O nome de Utilizador ou Senha está incorrecto. MySQL erro:".mysql_error()); // vê se o username existe ou não
$result = mysql_fetch_array($sql); // põem as informações da database numa array
?>

<?php
if (isset($_GET['consultar'])) //faz com que o que está dentro do if, só seja executado se o usuário clicar em 'Consultar'
{

$razao = trim($_GET['cli_razao']);
if ($razao == ""){
echo "<p align=\"center\"><font face=arial size=2 color=#ff0000>Sem argumentos para a consulta!</font>";
  }
  else {
//Consulta ao Mysql
$qry = mysql_query("SELECT cli_id as 'ID', cli_razao as 'RAZÃO SOCIAL', cli_fantasia as 'NOME FANTASIA', concat(cli_cpf, cli_cnpj) as 'CPF / CNPJ', concat(cli_end, ',', cli_end_num) as 'ENDEREÇO', cli_bairro as 'BAIRRO', cli_cep as 'CEP', cli_cidade as 'CIDADE', cli_uf as 'ESTADO' FROM cad_cliente WHERE cli_razao LIKE '%".$razao."%' ORDER BY cli_id");

//Pegando os nomes dos campos
$num_fields = mysql_num_fields($qry);//Obtém o número de campos do resultado

// consulta quantas linhas foram encontradas
$cont = mysql_num_rows($qry);

if ($num_fields != 0) {

for($i = 0;$i<$num_fields; $i++){//Pega o nome dos campos
$fields[] = mysql_field_name($qry,$i);
}
//Montando o cabeçalho da tabela
$table = '<table border="1" bordercolor=#cecece cellspacing="0" cellpadding="2" bgcolor="#f9f9f9"><tr>';

for($i = 0;$i < $num_fields; $i++){
$table .= '<th><font size=1 face=arial>'.$fields[$i].'</th>';
}
//Montando o corpo da tabela
$table .= '<tbody>';
while($r = mysql_fetch_array($qry)){
$table .= '<tr>';
for($i = 0;$i < $num_fields; $i++){
	$table .= '<td><font size=1 face=arial>'.$r[$fields[$i]].'</td>';
}
$table .= '</tr>';
}
//Finalizando a tabela
$table .= '</tbody></table></font>';


//Imprimindo a tabela
echo "<p align=\"center\"><font face=arial size=2>Resultado da busca para: '".$razao."'</font><br>";
echo "<p align=\"center\"><br>".$table."<br><font face=arial size=1>Total de cliente encontrados: " .$cont."</font>";
} else {
    echo "Nenhum cliente foi encontrado com a palavra ".$razao."";// ESTA LINHA NÃO ESTÁ FUNCIONANDO
   }
}
} //Finaliza if isset

?>
<p align="center"><a href="javascript:history.go(-1)"><img src="../../imagens/voltar.jpg" alt="Voltar" border="0" align="center"></a>

<?php
}
?>

 

O estranho é que o botão "voltar", que está fora do if isset, aparece na nova página, mas o resultado da consulta, não!

 

Já mudei de POST para GET, mas nada funciona.

 

Eu acho que o erro está neste trecho, pois não sei como utilizar variáveis e o jquery (alguém disse que é necessário):

onClick="window.showModalDialog('sql_consulta_campo.php?id=$table','Relatório', 'width=600,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');"/>

 

Alguém pode me ajudar?

 

* Já tenho o arquivo jquery!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consulta complicada a sua. Veja se este exemplo de consulta lhe ajuda em algo.

 

É claro que a página é maior, mais só peguei o importante.

 

admin.php //Pagina do administrador.

<?php
  include("conexao.php");

?>
<form name="frmBusca" method="post" action="consulta.php" >
<input type="text" name="palavra" />
<input type="submit" value="Buscar" />
</form>

 

consulta.php //Pagina que vai exibir a consulta, nao tem nenhum link para essa pagina no meu site, ela so aparece se for feita uma consulta

 

<?php					
       // Pegamos a palavra
$palavra = trim($_POST['palavra']);

// Verificamos no banco de dados produtos equivalente a palavra digitada
$sql = mysql_query("SELECT * FROM cliente WHERE cli_nome LIKE '%".$palavra."%' ORDER BY cli_nome");

// Descobrimos o total de registros encontrados
$numRegistros = mysql_num_rows($sql);

// Se houver pelo menos um registro, exibe-o
if ($numRegistros != 0) {
// Exibe os resultados em uma tabela
	echo "Busca realizada com sucesso pela palavra: " .$palavra."";
        while ($cliente = mysql_fetch_object($sql)) { ?>
		<table width='805px' height='50px' cellspacing='2' cellpadding='2' border='1' style='margin-top: 15px;' bgcolor='#3b4244'>
			<tr bgcolor='#3b4244' style="color: white;">
			<td>Id</td>
			<td>Nome</td>
			<td>Empresa</td>
			<td>Especialidade</td>
			<td>Email</td>
			<td>UF</td>
			<td>Cidade</td>
			<td>Endereço</td>
			<td>Cep</td>
			<td>Tel_Fixo</td>
			<td>Tel_Movel</td>
			<td>Sexo</td> 	
			</tr>

                               <?php echo"			
			<tr>
			<td bgcolor='white'><div style='font-weight: bold;'><pre>$cliente->cli_id</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_nome</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_empresa</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_especialidade</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_email</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_uf</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_cidade</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_endereco</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_cep</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_tel_fixo</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_tel_movel</pre></div></td>
			<td bgcolor='white'><div><pre>$cliente->cli_sexo</pre></div></td>
			</tr>
		</table>";?>
<?php	}

       // Se não houver registros
} else 
       echo "Nenhum cliente foi encontrado com a palavra ".$palavra."";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é só mudar no action do form para o endereço da nova página não?

 

Não... Pq ele tem que fazer a consulta primeiro... (eu acho!)

 

Claro que não! Você pode fazer a consulta e imprimir na mesma página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Lucas e Back-on!

 

Ainda não é isso que preciso... Minha consulta funciona perfeitamente, só não consigo fazer que ela apareça na nova página! :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Lucas e Back-on!

 

Ainda não é isso que preciso... Minha consulta funciona perfeitamente, só não consigo fazer que ela apareça na nova página! :(

 

Não tem como voce tirar uns prints e hospedar no photobucket e mostrar aqui para a gente o que esta acontecendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Site Bonito.

 

Tenta colocar um header no final do seu codigo de consulta.

 


header("location: admin.php?selecao=cadastros"); //Substitui pela sua pagina

 

Então... Acho que isso que preciso, mas o que substituo?? Não sei fazer isso! O que coloco no lugar de 'selecao=cadastros' ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sei qual modal você esta usando mas tem algo estranho pq o botao da submit no form e abre um modal sem parametros.... faça um teste para ver se as variaveis aparecem no modal:

 

 

esse $table ta sobrando tb...

sql_consulta_campo.php?id=$table'

 

 

<?php
include "../../config.php"; //inclui o arquivo de conexão

session_start(); // começa a session

if(!isset($_SESSION["login"])){
echo "ACESSO NEGADO";
}else{


//==============================================================================================
//essas linhas você tb nao esta utilizando em lugar nenhum sao necessarias?
$login = $_SESSION["login"];
$sql = mysql_query("SELECT * FROM login WHERE login='$login'") or die("O nome de Utilizador ou Senha está incorrecto. MySQL erro:".mysql_error()); // vê se o username existe ou não
$result = mysql_fetch_array($sql); // põem as informações da database numa array
//==============================================================================================
?>

<?php

//***************************************************************
//teste variaveis
echo "consultar: ".$_GET['consultar'];
echo "razao: ".$_GET['cli_razao'];
exit();
//***************************************************************


if (isset($_GET['consultar'])) //faz com que o que está dentro do if, só seja executado se o usuário clicar em 'Consultar'
{

$razao = trim($_GET['cli_razao']);
if ($razao == ""){
echo "<p align=\"center\"><font face=arial size=2 color=#ff0000>Sem argumentos para a consulta!</font>";
         }
         else {
//Consulta ao Mysql
$qry = mysql_query("SELECT cli_id as 'ID', cli_razao as 'RAZÃO SOCIAL', cli_fantasia as 'NOME FANTASIA', concat(cli_cpf, cli_cnpj) as 'CPF / CNPJ', concat(cli_end, ',', cli_end_num) as 'ENDEREÇO', cli_bairro as 'BAIRRO', cli_cep as 'CEP', cli_cidade as 'CIDADE', cli_uf as 'ESTADO' FROM cad_cliente WHERE cli_razao LIKE '%".$razao."%' ORDER BY cli_id");

//Pegando os nomes dos campos
$num_fields = mysql_num_fields($qry);//Obtém o número de campos do resultado

// consulta quantas linhas foram encontradas
$cont = mysql_num_rows($qry);

if ($num_fields != 0) {

for($i = 0;$i<$num_fields; $i++){//Pega o nome dos campos
       $fields[] = mysql_field_name($qry,$i);
}
//Montando o cabeçalho da tabela
$table = '<table border="1" bordercolor=#cecece cellspacing="0" cellpadding="2" bgcolor="#f9f9f9"><tr>';

for($i = 0;$i < $num_fields; $i++){
       $table .= '<th><font size=1 face=arial>'.$fields[$i].'</th>';
}
//Montando o corpo da tabela
$table .= '<tbody>';
while($r = mysql_fetch_array($qry)){
       $table .= '<tr>';
       for($i = 0;$i < $num_fields; $i++){
               $table .= '<td><font size=1 face=arial>'.$r[$fields[$i]].'</td>';
       }
       $table .= '</tr>';
}
//Finalizando a tabela
$table .= '</tbody></table></font>';


//Imprimindo a tabela
echo "<p align=\"center\"><font face=arial size=2>Resultado da busca para: '".$razao."'</font><br>";
echo "<p align=\"center\"><br>".$table."<br><font face=arial size=1>Total de cliente encontrados: " .$cont."</font>";
} else {
           echo "Nenhum cliente foi encontrado com a palavra ".$razao."";// ESTA LINHA NÃO ESTÁ FUNCIONANDO
   }
       }
       } //Finaliza if isset

?>
<p align="center"><a href="javascript:history.go(-1)"><img src="../../imagens/voltar.jpg" alt="Voltar" border="0" align="center"></a>

<?php
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Site Bonito.

 

Tenta colocar um header no final do seu codigo de consulta.

 


header("location: admin.php?selecao=cadastros"); //Substitui pela sua pagina

 

Então... Acho que isso que preciso, mas o que substituo?? Não sei fazer isso! O que coloco no lugar de 'selecao=cadastros' ?

 

Tenta assim:

 


header("location: sql_consulta_campo.php?id=$table"); 

 

Se não der certo, tenta tirar o evento onclick do seu botao de enviar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo, Lucas!

 

Com o evento onclick dá redundancia, e sem ele fica na mesma.

 

 

Você tem que procurar aonde está o seu erro, provavelmente está em alguma parte que você faz referência a nova janela que se abre, porque voce disse que o link voltar aparece mais o resultado da busca nao. Tenta procurar o erro nos links e redirecionamentos do seu codigo. Eu olhando ele assim não entendo muito devido ao javascript que voce colocou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, Goruks!

 

Já tirei o que tinha sobrando. Valeu!

 

Fiz o teste com as variáveis:

 

echo "consultar: ".$_GET['consultar'];

echo "razao: ".$_GET['cli_razao'];

exit();

 

Apareceram no modal aó assim:

 

consultar: razao:

 

Alguma sugestão???

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na página _blank que abre com o resultado da consulta "re" aparece este link:

 

http://www.regratecnologia.com.br/siesa/comercial/relatorio/sql_consulta_campo.php?cli_razao=re&consultar=

 

Tentei colocá-lo na modal assim:

onClick="window.showModalDialog('sql_consulta_campo.php?cli_razao=$razao&consultar=','Relatório', 'width=600,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');"/>

 

Onde $razao é a variável que recebe o campo que foi digitada a consulta "re".

 

Mas não deu certo!

 

A modal mostra a tabela, mas sem o resultado.

 

Preciso de ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

a variavel cli_razao tem que ser passada par a pagina onde você executa o SQL:

WHERE cli_razao LIKE '%".$razao."%'

 

isso aqui esta no html ou php? se for no html nao vai passar a variavel

onClick="window.showModalDialog('sql_consulta_campo.php?cli_razao=$razao&consultar=','Relatório', 'width=600,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');"/>

 

 

faça seguinte:

 

1 - na pagina onde tem link para abrir a janela arrume a variavel php e tenha certeza que esta variavel tem o conteúdo que você quer procurar no sql

 

onClick="window.showModalDialog('sql_consulta_campo.php?cli_razao=<?php echo $razao; ?>','Relatório', 'width=600,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');"/>

 

e na pagina onde executa o sql:

<?php
include "../../config.php"; //inclui o arquivo de conexão

session_start(); // começa a session

if(!isset($_SESSION["login"])){
echo "ACESSO NEGADO";
}else{

$razao = trim($_GET['cli_razao']);
if ($razao == ""){
echo "<p align=\"center\"><font face=arial size=2 color=#ff0000>Sem argumentos para a consulta!</font>";
}
else{

//Consulta ao Mysql
$qry = mysql_query("SELECT cli_id as 'ID', cli_razao as 'RAZÃO SOCIAL', cli_fantasia as 'NOME FANTASIA', concat(cli_cpf, cli_cnpj) as 'CPF / CNPJ', concat(cli_end, ',', cli_end_num) as 'ENDEREÇO', cli_bairro as 'BAIRRO', cli_cep as 'CEP', cli_cidade as 'CIDADE', cli_uf as 'ESTADO' FROM cad_cliente WHERE cli_razao LIKE '%".$razao."%' ORDER BY cli_id");

//Pegando os nomes dos campos
$num_fields = mysql_num_fields($qry);//Obtém o número de campos do resultado

// consulta quantas linhas foram encontradas
$cont = mysql_num_rows($qry);

if ($cont != 0) {
		for($i = 0;$i<$num_fields; $i++){//Pega o nome dos campos
			$fields[] = mysql_field_name($qry,$i);
		}
	//Montando o cabeçalho da tabela
	$table = '<table border="1" bordercolor=#cecece cellspacing="0" cellpadding="2" bgcolor="#f9f9f9"><tr>';

	for($i = 0;$i < $num_fields; $i++){
			$table .= '<th><font size=1 face=arial>'.$fields[$i].'</th>';
	}
	//Montando o corpo da tabela
	$table .= '<tbody>';
	while($r = mysql_fetch_array($qry)){
			$table .= '<tr>';
			for($i = 0;$i < $num_fields; $i++){
					$table .= '<td><font size=1 face=arial>'.$r[$fields[$i]].'</td>';
			}
			$table .= '</tr>';
	}
	//Finalizando a tabela
	$table .= '</tbody></table></font>';


	//Imprimindo a tabela
	echo "<p align=\"center\"><font face=arial size=2>Resultado da busca para: '".$razao."'</font><br>";
	echo "<p align=\"center\"><br>".$table."<br><font face=arial size=1>Total de cliente encontrados: " .$cont."</font>";
} 
else {
	echo "Nenhum cliente foi encontrado com a palavra ".$razao."";// ESTA LINHA NÃO ESTÁ FUNCIONANDO
}
}//razao

?>
<p align="center"><a href="javascript:history.go(-1)"><img src="../../imagens/voltar.jpg" alt="Voltar" border="0" align="center"></a>

<?php
} //session
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que a consulta apareça em uma nova página é só colocar na tag <FORM> o atributo target='_new'

 

:lol:

 

Seria o mesmo que _blank ?

 

Não é isso que preciso... Quero uma 'modal'.

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.