Ir para conteúdo

POWERED BY:

Arquivado

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

fabiapo

[Resolvido] Javascript com PHP no final do código

Recommended Posts

pessoal,

 

Estou montando uma página em PHP onde, ao final da execução de uma query em PostgreSQL, tenho que exibir uma mensagem caso ocorra algum erro.

 

O erro já está armazenado em uma variável. Apenas preciso pegar este resultado que está no final do meu código e chamar uma janela em javascript ou JQuery.

 

Alguém sabe como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo '<script type="text/JavaScript">alert("'.$erro.'");</script><noscript><div class="alert">'.$erro.'</div></noscript>';

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eibon,

 

Vou explicar melhor o meu código:

 

Estou fazendo o tratamento de um formulário POST na mesma página em PHP da seguinte forma:

 

if (isset($_POST['sub_Enviar'])) // nome do botão enviar: sub_Enviar

{

 

$nm_Usuario = $_SESSION["nom_usu"];

$id_UsuarioLogado = $_SESSION["id_usuario"];

 

$str_SenhaAtual= md5($_POST["pwd_SenhaAtual"]);

$str_NovaSenha = md5($_POST["pwd_NovaSenha"]);

$str_Frase = $_POST["txt_Frase"];

$str_Assinatura = $_POST["rdo_Assinatura"];

 

$query = "SELECT altera_senha('$nm_Usuario','$str_NovaSenha','$str_Frase','$str_Assinatura', $id_UsuarioLogado,$id_UsuarioLogado)"; // seleciona função postgresql

$rs = @pg_query($dbconn, $query);

 

if (!$rs) // se der erro

{

$str_message="Não foi possível alterar sua senha. Contate o administrador";

$str_erro=pg_last_error($dbconn);

$str_message=$str_message."<br>".$str_erro;

// NESTE PONTO PRECISO COLOCAR O ALERT COM O ERRO!!!

}

else

{

$str_message="Senha cadastrada com sucesso";

header("Location:principal.php");

}

}

Tentei o código que você me enviou mas não funcionou.

 

Existe algo de diferente para aplicar no código neste caso?

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

if (!$rs) // se der erro

{

$str_message = 'Não foi possível alterar sua senha. Contate o administrador';

$str_erro = pg_last_error($dbconn);

$str_message = $str_message.'<br />'.$str_erro;

 

echo '<script type="text/JavaScript">alert("'.$str_message.'");</script><noscript><div class="alert">'.$str_message.'</div></noscript>';

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,

 

Eu havia inserido desta forma, conforme o eibon citou, mas não havia funcionado.

 

Será que tem a ver com a validação na mesma página, ou seja, após a tag /HTML?

 

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,

 

Este é o problema: não acontece nada.rss

 

O navegador gera o seguinte código ao final da página HTML, ou seja, após o "</HTML>":

 

<script type='text/JavaScript'>window.alert('Não foi possível alterar a senha. Contate o administrador<br>ERRO: função ffp_altera(unknown, unknown, unknown, unknown, integer, integer) não existe

LINE 1: SELECT ffp_altera('teste','d380ab4325d44e48731034e24165...

^

HINT: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explícitas.');</script>

 

Será que existe alguma particularidade com a mensagem? Pois se eu colocar "olá" aparece.

Se existir, existe alguma outra forma de apresentar a mensagem para o usuário via JQUERY ou javascript?

 

Obrigada!

 

 

 

Porque nao funciona? O que ocorre?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calvin...nada a ver.

fabia...seguinte...dá uma olhada:

<script type='text/JavaScript'>window.alert('Não foi possível alterar a senha. Contate o administrador<br>ERRO: função ffp_altera(unknown, unknown, unknown, unknown, integer, integer) não existe

LINE 1: SELECT ffp_altera('teste','d380ab4325d44e48731034e24165...

^

HINT: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explÃcitas.');</script>

JavaScript não tem um debugger...você tem que prestar atenção nessas coisas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem um debbuger chamado firebug que eh um complemento do firefox que mostra os erros do javascript eh mt util para desenvolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, minha intenção nao foi contrariar oque você disse, so fazer uma propaganda do firebug :P

 

e digasse de passagem tem um firebug pra php tambem e um para cookies

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eibon,

 

Esta mensagem não é gerada por mim, e sim um retorno de erro do banco de dados.

 

O que quero fazer é, em caso de erro, exibir um alert informando que houve um problema e qual a mensagem de erro para posterior análise.

 

Realizei um str_replace na variavel que retorna a frase para retirar as ', mesmo assim não funcionou:

 

<script type="text/JavaScript">window.alert("Não foi possível alterar sua senha. Contate o administrador<br>ERRO: função ffp_altera_senh(unknown, unknown, unknown, unknown, integer, integer) não existe

LINE 1: SELECT ffp_altera_senh(teste,d380ab4325d44e48731034e24165...

^

HINT: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explícitas.");</script>

 

Fiz da seguinte forma:

if (!$rs)
	{
		$str_message="Não foi possível alterar sua senha. Contate o administrador";
		$str_erro=pg_last_error($dbconn);
		$str_message=$str_message."<br>".$str_erro;
		$str_message=str_replace("'","",$str_message);
		[b]echo '<script type="text/JavaScript">';
		echo 'window.alert("'.$str_message.'");';
		echo '</script>';[/b]
	}

Existe mais algum detalhe a ser observado? Desculpe a pergunta, mas não tenho muita habilidade com o javascript. :o)

 

Só sei que dá uma mensagem no console do Firefox dizendo: unterminated string literal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Descobri o erro:

 

O Postgre gera um /n em sua frase de erro.

 

Desta forma, o javascript encara como final de string.

 

Realizei um replace /n no php e exibiu normalmente.

 

Obrigada!

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.