Ir para conteúdo
Fórum Script Brasil
  • 0

Auto preencher formulario com um dos campos preenchidos


Paulo Campos 01

Pergunta

Olá pessoal, encontrei um script de acordo com minha necessidade...

porem não está funcionando.

alguém poderia me ajudar a encontrar o erro ?

Ele executa uma consulta ao banco de dados via HTTPRequest e preenche o formulário automaticamente sem refresh na página a partir de um campo preenchido.

Alguém sabe um outro lugar onde posso encontrar esse tido de script?

OBS: Uso MYSQL.

- Tabela: teste

create table ‘teste’ (

‘id’ integer not null primary key,

‘descricao’ character varying(20) not null,

‘preço’ real not null,

‘quantidade’ integer not null

)

Também não estou conseguindo importar a tabela :/

- Inserindo dados na tabela

insert into teste (id,descricao,preço,quantidade) values (11111,‘caneta’,2.50,10);

insert into teste (id,descricao,preço,quantidade) values (22222,‘lápis’,1.20,15);

insert into teste (id,descricao,preço,quantidade) values (33333,‘borracha’,1.00,10);

logo após é criada uma pasta com nome ajax onde será colocada a pagina ajax.js que contem a função sack.

agora, criaremos a pagina principal do formulário:

- index.html

<html>

<head>

&lt;script type=“text/javascript” src=“ajax/ajax.js”></script>

&lt;script type=“text/javascript”>

var ajax = new sack();

var currentID = false;

function getClientData() {

var id = document.getElementById( ‘id’ ).value.replace( /[^0-9]/g , ” );

if ( id.length == 5 && id != currentID ){

currentID = id;

ajax.requestFile = ‘getID.php?id=’ + id; // Especificando de qual arquivo irá obter as informações

ajax.onCompletion = showClientData; // Executa a função quando encontrar o arquivo

ajax.runAJAX(); // Executa as funções em ajax

}

}

function showClientData() // Função que retorna a resposta da consulta

{

var formObj = document.forms['consulta'];

eval(ajax.response);

}

function initFormEvents() // função que dispara o inicio da consulta através do onBlur

{

document.getElementById( ‘id’ ).onblur = getClientData;

document.getElementById( ‘id’ ).focus();

}

window.onload = initFormEvents;

</script>

</head>

<body>

<form action=“” method=“POST” name=“consulta”>

<table border=“0″>

<tr><td>id:</td><td><input type=“text” size=“15″ name=“id” id=“id” maxlength=“5″></td></tr>

<tr><td>descrição:</td><td><input type=“text” size=“15″ name=“descricao” maxlength=“15″></td></tr>

<tr><td>preço:</td><td><input type=“text” size=“15″ name=“preço” maxlength=“6″></td></tr>

<tr><td>quantidade:</td><td><input type=“text” size=“15″ name=“quantidade” maxlength=“6″></td></tr>

</table>

</form>

</body>

</html>

E agora, a pagina getID que irá fazer a consulta ao banco de dados.

- getID.php

<?php

// incluindo a pagina de conexão com o BD

$host = ‘localhost’;// host

$bdname = ‘Nome_banco_dados’; // nome do banco

$user = ‘Nome_usuario’; // usuário

$password = ‘Senha’; // senha

$conn = @mysql_connect($host,$user,$password) or die (“O servidor não responde!”);

// conecta-se ao banco de dados

$db = @mysql_select_db($bdname,$conn)

or die (“Não foi possivel conectar-se ao banco de dados!”);

if(isset($_GET['id])){

$res = mysql_query(“SELECT * FROM teste WHERE id=’”.$_GET['id'].”‘”);

// caso haja retorno na consulta, irá preencher os campos do formulário, senão irá apagar seu conteúdo.

if($inf = mysql_fetch_array($res)){

echo “formObj.descricao.value = ‘”.$inf["descricao"].”‘;\n”;

echo “formObj.preço.value = ‘”.$inf["preço"].”‘;\n”;

echo “formObj.quantidade.value = ‘”.$inf["quantidade"].”‘;\n”;

}else{

echo “formObj.descricao.value = ”;\n”;

echo “formObj.preço.value = ”;\n”;

echo “formObj.quantidade.value = ”;\n”;

}

}

?>

O sistema interage da seguinte maneira, ao perder o foco do campo ID do formulário através do onblur na função initFormEvents, a função getClientData fará a verificação do valor quando este não estiver nulo ou diferente da quantidade estipulada, caso esteja correto ele executa a função requestFile na pagina getID.php onde é feita a consulta através da variável id, em seguida ele retorna as respostas no formulário especificado na função showClientData e assim são executadas todas as funções da classe contidas na pagina Ajax.php que são responsáveis por todo o processo em execução sem refresh na página.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,2k
×
×
  • Criar Novo...