Jump to content
Neto Dinizz

Como salvar inputs de uma página sem o usuário perceber

Recommended Posts

Sim através dos eventos que o usuário possa fazer que seria ao sair do campo ao mover o mouse ao mudar o valor do campo que seria o onChange... via AJAX com o objeto MSXML ... com esse esquema você pode salvar dados no banco sem a percepção do usuário

Share this post


Link to post
Share on other sites

<script>
function GetXmlHttpObject(){
var objXMLHttp=null

    if (window.XMLHttpRequest)    {
        objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)    {
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
return objXMLHttp
}
function salvanovovalor(novovalor){    
XMLHttp2 = GetXmlHttpObject()
var url="suapagina.asp?campo=" + novovalor;
XMLHttp2.onreadystatechange=stateChanged3
XMLHttp2.open("GET",url,true)
XMLHttp2.send()
}
function stateChanged3(){
    if (XMLHttp2.readyState==4 || XMLHttp2.readyState=="complete"){
         resp = XMLHttp2.responseText;
      alert(resp);

//PODE TIRAR O ALERT
     }
}
</script>
<form name="form">
<input type="text" name="nome" onblur="salvanovovalor(this.value);">
</form>


Num outro arquivo que será suapagina.asp terá 
aqui onde fará o acesso ao banco de dados 

valor= request("campo") 

if valor <> "" then 
response.write "TEM O VALOR " & valor

'aqui faria a conexao com o banco para salvar
else
response.write "SEM VALOR PARA SALVAR"

'pode remover o else
end if

 

 

NESSE EXEMPLO você PASSA A AÇÃO NO EVENTO AO SAIR E O VALOR VOLTA PARA A PÁGINA NO ALERT... Veja que o javascript se faz necessário para a ação...

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mzaidan
      Pessoal, tenho o seguinte codigo:
      function showUser(str) { if (str == "") { document.getElementById("txtHint").innerHTML = ""; return; } else { if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("txtHint").innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET","getFaixa.php?q="+str,true); xmlhttp.send(); } } Na mesma página, logo embaixo:
      <select name='faixa' id='appearance-select' onchange="showUser(this.value)"> <option value='branca' <?=($faixa == 'branca')?'selected':''?>>Branca</option> <option value='azul' <?=($faixa == 'azul')?'selected':''?>>Azul</option> <option value='roxa' <?=($faixa == 'roxa')?'selected':''?>>Roxa</option> <option value='marrom' <?=($faixa == 'marrom')?'selected':''?>>Marrom</option> <option value='preta' <?=($faixa == 'preta')?'selected':''?>>Preta</option> </select><br> No getFaixa.php:
      include("conexao.php"); $q = intval($_GET['q']); $id = $_SESSION['id']; $update = "UPDATE usuario SET faixa='$q' WHERE usuario_id='$id'"; $result = mysqli_query($conexao, $update); O que eu gostaria era mudar o campo no BD, usando ajax.
      Ele até está mudando, só que está botando um 0 ao invés do value do select.
       
      Alguém poderia me ajudar?
      Onde estou errando?
      Grato.
    • By danielpinho
      Boa tarde pessoal,
       
      Estou desenvolvendo um sistema de pagamento via cartão de crédito que requer a execução de um ajax (request https) quando o usuário digita o número do cartão, a fim de capturar a bandeira do mesmo. O javascript deve enviar via ajax somente os 6 primeiros dígitos do cartão.
       
      A função já está funcionando parcialmente, da seguinte forma: quando o usuário digita o sexto dígito, o ajax faz a requisição e retorna o resultado.
       
      O problema é que quando o usuário continua digitando o restante do número do cartão, o ajax continua fazendo uma requisição a cada tecla pressionada, o que vai acabar sobrecarregando desnecessariamente o meu servidor.
       
      Eu sei que o ideal seria acionar a função somente quando a minha keyword tivesse lenght=6 (assim, ao continuar digitando a função não seria acionada), porém tem pessoas que copiam e colam o número do cartão de uma vez, e isso geraria um bypass na função...
       
      Além disso, o sistema deve ser capaz de reconhecer que houve uma eventual mudança nos 6 números digitados inicialmente, para fazer uma nova requisição ajax com esses números novos.
       
      A solução que pensei, em síntese, foi criar uma variável chamada "lastquery", inicialmente com o valor "000000". Digamos que os 6 dígitos pesquisados estivessem na variável "sixdigits". 
       
      Quando a requisição ajax fosse feita, a variável "lastquery" teria valor alterado para o mesmo valor de "sixdigits".
       
      E a requisição ajax ficaria condicionada da seguinte forma:   if (lasquery !== sixdigits) { executa ajax }.
       
      O problema é que não está dando certo. Ele continua executando normalmente, mesmo quando o valor de lastquery é o mesmo valor de sixdigits.
       
      Alguém mais inteligente do que eu consegue me ajudar? 
       
      Segue o código que não está funcionando perfeitamente. Reparem que fiz um alert para verificar o que estava dando errado, mas a mensagem que recebo no alert é sempre algo do tipo: "10100 is not equal to 10100". Não consigo entender porque isso acontece, já que lá em cima coloquei a condicionante !==.
       
      Obrigado!
       
      <form method="post"> <input type="text" name="ccnumber" id="ccnumber" value="" onkeyup="getcardbin()"> </form> <script> var lastquery = "000000"; function getcardbin() { var min_length = 6; var keyword = $('#ccnumber').val(); if (keyword.length >= min_length) { var justsix = keyword.substring(0, 6); if (justsix !== lastquery) { $.ajax({ url: '/getcardbin.cgi', type: 'POST', data: { 'tkn': 'token_interno', 'tid': 'token_interno', 'bin': justsix }, success:function(data){ $('#returnmsg').prepend(data); alert(justsix + ' is not equal to ' + lastquery); var lastquery = justsix; } }); } } } </script>  
    • By gust.php
      Fala pessoal.
       
      Quero fazer o seguinte: Tenho um campo select e um campo input. Quando eu selecionar um item do meu campo select, quero enviar o ID desse item, e o valor do campo input, que no caso é uma data, para um script PHP,  no PHP vou conferir uma situação e dizer se eu posso usar esse item ou não.
       
      Alguém pode me mostrar um exemplo?
       
      Obrigado.
    • By FabianoSouza
      Quero saber se é possível enviar formData e string na mesma requisição AJAX.
       
      $frmData = new FormData($form); $xhr.open('post', $form.getAttribute('action'), true); $xhr.setRequestHeader('content-type', 'text/plain;charset=utf-8'); $xhr.send($frmData); //******* quero saber se consigo enviar sting, além do objeto formData.  
    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.