Ajuda com a lógica do script

Enviada por CLAUDIO 
CLAUDIO
Ajuda com a lógica do script
17 de July de 2012 às 09:26PM
Quero verificar se o contrato já esta cadastrado, se estiver vai redirecionar p/ cadastro do objeto contratual se não retorna ao formulário de cadastro. Só que quando digito um contrato qualquer esta redirecionando em seguida.


<input type=text name='contrato' id='contrato' onchange='alerta();'>
<?php

echo "<script>
function alerta(){
var id = document.getElementById('contrato').value;
location.href = './verificar_contrato.php?contrato='+id;
}
</script>";

@$teste = $_GET['contrato'];
#echo "$teste";

$link = mysql_connect("127.0.0.1","brasilia","********");
$db = mysql_select_db("orcamento",$link);


@$itens = mysql_query("SELECT * FROM `contratos` where contrato ='$teste'");
$num = mysql_num_rows($itens); # número de registros

if (@$_GET['contrato'] != 0){
echo "<script>
{
var x;
var r = confirm('Contrato já cadastrato. Realizar outro cadastro?');
if (r ==true)
{
location.href = 'cad_contratos.php';
}
else
{
location.href = 'obj/'; // cadastro de objeto contratual
}
}
</script>
";
}


?>
Carlos Eduardo Gomes Monteiro
Re: Ajuda com a lógica do script
18 de July de 2012 às 10:02PM
É o seguinte...
Se você quer pesquisar enquanto a pessoa digita, você tem que usar Ajax.
Dê uma pesquisada, com JQuery você deve fazer isso fácil.

Evite fazer redirecionamento usando javascript.
É preferivel que você utilize a função header() do PHP
header('Location: pagina.php');//Não imprima nada antes de utilizar esta função

O formulário deve ser submetido (Clicar no botão enviar) para executar uma ação que requer PHP.
Pelo que estou entendendo, você está tentando misturar duas coisas e está tendo problemas.
Então, se você quer dinamizar o seu formulário, você tem que utilizar Ajax.
Dê uma pesquisada sobre ajax.

Observe uma coisa.
O usuário preenche o formulário e clica em "Enviar".
O formulário chama uma página PHP que processará os dados e executará o procedimento desejado.
Observe que são duas coisas separadas.
O que existe entre estas duas páginas é apenas uma troca de informações.
Uma não está ligada a outra.
O HTML e o Javascript são executados no cliente (No seu navegador ou no navegador de quem está acessando sua página).
O PHP roda no servidor (Num outro computador bem distante).

Dê uma olhada sobre esta questão "Cliente/Servidor" que você vai entender melhor a respeito!
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.