Ir para conteúdo

POWERED BY:

Arquivado

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

alh

Input que checa Usuario se não Existir efetua o pré-cadastro

Recommended Posts

Saudações...

 

Estou com uma dúvida, que preciso compartilhar com vocês.

 

Trata-se de um Cadastro de Cliente e Orçamento.

 

Veja a seguir como é o procedimento que preciso realizar.

 

No Cadastro de Orçamento tem um input chamado "Cliente" que o cliente preenche e recebe a lista dos clientes cadastrados.

 

EXPLICAÇÃO SIMPLES:

 

Digito "Teste1" no campo 'Cliente' da página de cadastro de 'Orçamento', se o cliente existir mostra o resultado: "Teste1" para clicar e preencher o input como sendo o certo.

 

Mas, se buscar por "Teste1" e não encontrar registros no banco de dados aparece o resultado: "Teste1 (Cadastrar)" quando clico em 'Cadastrar', ele faz um pré-cadastro na tabela 'Clientes' com o nome "Teste1", sem sair do input na mesma tela do cadastro, aparecendo apenas um aviso abaixo do input 'Cliente' dizendo: "Cliente cadastrado".

 

Parece simples, mas ainda não encontrei uma maneira..

 

Se puder me ajudar ficarei muito grato. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Williams!

 

Grato pela sua resposta desde já, acho bacana quem se apresenta para ajudar..

 

Estava ciente que teria que ser em ajax, agora você confirmou.

 

Certo o INPUT em ajax como nos exemplos que me passou já tinha implantado porém após implantar esse ajax no input fico travado para o próximo passo.

 

VEJA:

 

Na página de cadastro de 'Orçamento', ao digitar o nome no input 'cliente' se ele NÃO existir, quero cadastrar ele na tabela 'Clientes' sem refresh na página e só com um aviso "Cliente cadastrado com Sucesso!" após isso preencho os campos normais do Orcamento e finalizo o orcamento.


 

 

Esse passo tudo certo. Só falta o cadastro sem refresh na tabela Cliente dentro do input cliente na pagina de Orcamento.


Consegui resolver, estava testando com ajax e tinha um erro, agora resolvi!

 

Obrigado pela ajuda! :yes: :yes: :yes: :yes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, eu uso algo parecido em um sistema meu com Ajax. Tenho um Form que possui um INPUT para receber Membros de uma Equipe a ser montada. Ao digitar nomes no input umabusca é feita na Tabela de membros. Todos que existem na tabela cuja palavra digitada existe em algum lugar do Nome do Membro são listadas abaixo. Ao clicar em um dos membros da Lista ele vai para o INPUT. Tem na linha do INPUT um botão "INSERIR". O INPUT é esse:

<input name="pesquisa" type="imput" class="FormDescricaoBreveDescricao" id="pesquisa" autocomplete="off" onkeyup="carregaAjax('resbusca','cotacao/acha_apoio.php?valor=' + this.value)" onkeydown="carregaAjax('resbusca','cotacao/acha_apoio.php?valor=' + this.value)" onfocus="className='FormDescricaoBreveDescricao2';" onblur="className='FormDescricaoBreveDescricao';" />

O Script Ajax que carrega a tabela abaixo do INPUT com as pessoas que possuem a palavra no Nome é:

<script language="JavaScript">
function openAjax() {
var Ajax;
try {Ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers mais populares, como: Firefox, Safari, dentre outros.
}catch(ee){
try {Ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
}catch(e){
try {Ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
}catch(e){Ajax = false;}
}
}
return Ajax;
}

function carregaAjax(div, getURL) {
if (div=="resbusca") {
document.getElementById("resbusca").style.display = "block";
}
if(document.getElementById) { // Para os browsers complacentes com o DOM W3C.
var exibeResultado = document.getElementById(div); // div que exibirá o resultado.
var Ajax = openAjax(); // Inicia o Ajax.
Ajax.open("GET", getURL, true); // fazendo a requisição
Ajax.onreadystatechange = function(){
if(Ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
if (div=="resbusca") {
exibeResultado.innerHTML = "<div><img src='js/ajax-loader.gif' align='left'>Não Encontrado...</div>";
} else {
exibeResultado.innerHTML = "Carregando...";
}
}
if(Ajax.readyState == 4) { // Quando estiver tudo pronto.
if(Ajax.status == 200) {
var resultado = Ajax.responseText; // Coloca o retornado pelo Ajax nessa variável
resultado = resultado.replace(/\+/g,""); // Resolve o problema dos acentos
//resultado = resultado.replace(/ã/g,"a");
resultado = unescape(resultado); // Resolve o problema dos acentos
exibeResultado.innerHTML = resultado;
} else {
if (div=="resbusca") {
exibeResultado.innerHTML = "<div><img src='js/ajax-loader.gif' align='left'>Não Encontrado...</div>";
} else {
exibeResultado.innerHTML = "Carregando...";
}
}
}
}
Ajax.send(null); // submete
}
}
</script>

 

********** Função que Aceita o membro clicado jogando o Código e o Nome dele no INPUT é:

<script language="JavaScript" type="text/JavaScript">
function aceita_item(registro) {
var tab = registro.split("|");
var cod = tab[0];
var nom = tab[1];
document.getElementById("apoio").value = cod;
document.getElementById("pesquisa").value = nom;
document.getElementById("resbusca").style.display = "none";
document.getElementById("observ").focus();
return false;
}
</script>

O programa PHP que é chamado pelo Ajax (acha_apoio.php) é:

<? header("Content-Type: text/html; charset=iso-8859-1",true) ?>
<?php
mb_internal_encoding("UTF-8");
mb_http_output( "iso-8859-1" );
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=ISO-8859-1",true);
?>
<?php
session_start();
import_request_variables("gP");
require '../includes/conexao.php';
$string = addslashes(trim($_GET['valor']));
$string = strtolower($string);
$nome_apoio = "";
if (strlen($string)>0) {
$vis = "select codigo,nome from apoio where lower(nome) like '%".$string."%' ORDER BY nome";
$res = pg_exec( $conexao, $vis );
echo "<ul>";
while($lin = pg_fetch_row($res)){
$cod_apoio = $lin[0];
$nome_apoio = $lin[1];
$nome_apoio = utf8_encode($nome_apoio);
$retorno= $cod_apoio."|".$nome_apoio;
echo $url = "<li><a href=".chr(34)."#".chr(34)." onClick=".chr(34)."aceita_item('".$retorno."');".chr(34)."><img src=".chr(34)."imagens/download_linha.png".chr(34)." width=".chr(34)."18".chr(34)." height=".chr(34)."18".chr(34)." align=".chr(34)."left".chr(34)." border=".chr(34)."0".chr(34)."></a> ".$nome_apoio."</li><br>";
}
echo "</ul>";
}
if ($nome_apoio=="") {
echo "Não Encontrado...".$string;
}
?>

 

Veja que o Link para ser clicado e aceitar o Membro é uma imagem chamada download_linha.png que está no diretório imagens/

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou você pode utilizar uma função mais simples do jquery

$("#id_input").keyup(function (e) {

    ...

});

https://api.jquery.com/keyup/

Verificar se retorna um boolean false, e mostrar um button para cadastrar caso não exista este cliente, com a função click você cadastra sem refresh

$("#id_input").click(function (e) {

...

});

https://api.jquery.com/click/

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.