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 Sapinn
      Iai galera blz? Tô com uma duvida aqui. Eu tenho um menu Vertical Tabs que basicamente me ajuda a navegar em uma pagina sem precisar criar varias rotas para outras paginas. Segue o codigo:
      <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> * {box-sizing: border-box} body {font-family: "Lato", sans-serif;} /* Style the tab */ .tab { float: left; border: 1px solid #ccc; background-color: #f1f1f1; width: 30%; height: 300px; } /* Style the buttons inside the tab */ .tab button { display: block; background-color: inherit; color: black; padding: 22px 16px; width: 100%; border: none; outline: none; text-align: left; cursor: pointer; transition: 0.3s; font-size: 17px; } /* Change background color of buttons on hover */ .tab button:hover { background-color: #ddd; } /* Create an active/current "tab button" class */ .tab button.active { background-color: #ccc; } /* Style the tab content */ .tabcontent { float: left; padding: 0px 12px; border: 1px solid #ccc; width: 70%; border-left: none; height: 300px; } </style> </head> <body> <h2>Vertical Tabs</h2> <p>Click on the buttons inside the tabbed menu:</p> <div class="tab"> <button class="tablinks" onclick="openCity(event, 'London')" id="defaultOpen">London</button> <button class="tablinks" onclick="openCity(event, 'Paris')">Paris</button> <button class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</button> </div> <div id="London" class="tabcontent"> <h3>London</h3> <p>London is the capital city of England.</p> </div> <div id="Paris" class="tabcontent"> <h3>Paris</h3> <p>Paris is the capital of France.</p> </div> <div id="Tokyo" class="tabcontent"> <h3>Tokyo</h3> <p>Tokyo is the capital of Japan.</p> </div> <script> function openCity(evt, cityName) { var i, tabcontent, tablinks; tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].style.display = "none"; } tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace(" active", ""); } document.getElementById(cityName).style.display = "block"; evt.currentTarget.className += " active"; } // Get the element with id="defaultOpen" and click on it document.getElementById("defaultOpen").click(); </script> </body> </html> Fonte: https://www.w3schools.com/howto/howto_js_vertical_tabs.asp
      Blz, agora digamos que eu tenha saído da pagina onde tem esse Vertical tab e quando retornar eu gostaria de voltar justamente do lugar de onde eu sai.
      Por exemplo, digamos que eu tenha saído do menu na parti Paris para uma pagina onde tem tudo de Paris quando eu apertar no botão voltar eu quero retornar a pagina onde tem o menu e quero que ele fique na opção Paris inclusive marcado. Quando ele volta ele só vai para a primeira opção.
      Tem algum jeito de fazer isso?
    • By Guilherme Luiz
      Olá pessoal,
       
      Estou com uma pequena dúvida em relação a buscar dados em json no MySQL.
      No meu banco eu tenho uma table com o seguinte campo em json.
       
      table - contacts
      column - groups_id
       
      Na coluna groups_id eu armazeno ids de grupos em json por exemplo:
      ["252","222","666"]  
      Quando eu realizo a seguinte query
      SELECT * FROM user_contacts WHERE JSON_CONTAINS(group_id, '["252"]')  
      Beleza... Ele me resulta em todos os contatos que possuem o registro 252.
      O que acontece é que essa table é 1 > N, ou seja, um contato pode fazer parte de vários grupos, sendo assim:
       
      quando eu consulto
      SELECT * FROM user_contacts WHERE JSON_CONTAINS(group_id, '["252","222"]') Ele não me resulta nos contatos que estão com grupo 252 ou 222.
      Ele me resulta nos contatos que estão com o grupo 252 e 222, ou seja, ele me retorna somente os contatos que o group id tenha ["252","222"]
       
      Eu vi que nessa situação eu poderia criar um INDEX na minha tabela usando:
      ALTER TABLE user_contacts ADD INDEX groups ( (CAST(group_id->'$.groups' AS UNSIGNED ARRAY)) );  
      Mas o CAST() na versão que Mysqli que eu possuo no servidor 4.6.X me retorna Syntax error.
      Alguem teria uma sugestão ou luz de qual caminho posso seguir nessa situação sem que seja atualizando a versão do bd?
       
       
    • By mamotinho
      oi pessoal estou com um problema , não estou conseguindo passar todos os valores o foreach no json_encode() alguém poderia me ajudar, eu estou tentando monta um mecanismo de refresh em tempo real de uma lista de notificação veja abaixo:
       
      <script type="text/javascript"> function make_call() { // Fazendo requisição AJAX $j.post('teste.php', function (frase) { // Exibindo frase $j('#listas').html('<i>' + frase + '</i>'); }, 'JSON'); setTimeout(function(){ make_call(); }, 5000); } </script>
      Aqui é o arquivo que quero enviar para a div #lists
       
      <?php require("conexao/directory.php"); $notificar = $db->query("select TOP 5 * from Techi7CP.dbo.cabal_notificacao_geral order by regdate desc"); $notificacao = $notificar->fetchAll(); $count_notificacao = abs($notificar->rowCount()); if($count_notificacao==0){ echo '<li style="text-align:center;">não existe notificações no momento.</li>'; }else{ foreach($notificacao as $notif){ $consulta_conta = $db->query("select * from account.dbo.cabal_auth_table where UserNum='".$notif['usernum']."'")->fetchObject(); switch($notif['acao']){ case 'logadopremiado' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle red small">redeem</span>'.$notif['jogador'].' ganhou no Logado Premiado</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'mudarsenha' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle teal small">vpn_key</span>'.$consulta_conta->Nome.' alterou sua senha</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'distribuirpontos' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle cyan small">control_point</span>'.$notif['jogador'].' distribuiu seus pontos</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'girodasorte' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle brown small">star_border</span>'.$consulta_conta->Nome.' usou o giro da sorte</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'sistematpoint' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle green small">golf_course</span>'.$notif['jogador'].' recebeu seu tpoint por clique</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'combo' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle amber small">videogame_asset</span>'.$notif['jogador'].' fez '.$notif['ExtraDetalhes'].' em sua primeira vez</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; } } } ?> como eu faria para ser exibido todos os resultados registrados com o json_encode().
    • By unset
      Olá a todos, estou com uma dúvida ou probleminha e buguei aqui, se alguém puder ajudar, é o seguinte tem como eu fazer um update sem setar valor ou de alguma forma não alterar o valor do campo se o campo tiver valor no banco?
       
      Exemplo
       
      Aqui eu recebo os dados pra cadastrar tudo certo
       
      public function update($dados) { $this->db->query("UPDATE posts SET capa = :capa, titulo = :titulo, texto = :texto WHERE id = :id"); $this->db->bind(":id", $dados['id']); $this->db->bind(":capa", $dados['capa']); $this->db->bind(":titulo", $dados['titulo']); $this->db->bind(":texto", $dados['texto']); }  
      Porém, o campo capa, ou seja o dado caba não é obrigatório então se ele vier com valor null, ou em branco etc deveria não alterar o valor no banco pois o mesmo ja esta preenchido, como fazer para que ele altera o valor no banco somente se for null
       
      Eu já tentei usar unset($dados['capa']); para remover a capa, mais ele deixa o campo do DB null mesmo quando tem valor lá, e também definir $dados['capa'] = null, em fim não da certo...
       
       
    • By Michael Cats
      Bom dia,
      Eu to fazendo um projeto onde preciso ir adicionando eventos.
      Quando eu adiciono dois ou mas do primeiro setor selecionado da tudo certo. 
      Mas quando removo e altero o setor, o select vem duplicado e os eventos vem duplicado também.

       
      Depois de remover e trocar o setor e adicionar novos eventos.

      --- popular a primeira aba que ja vem na pagina.
      $(function(){ $('#setor').change(function(){ if( $(this).val() ) { $('#evento').slideUp(); $.getJSON('function_setor.php?search=',{setor: $(this).val(), ajax: 'true'}, function(j){ var options = '<option value="">Escolha Evento</option>'; for (var i = 0; i < j.length; i++) { options += '<option value="'+j.id+'">'+j.desc+'</option>'; } $('#evento').html(options).slideDown(); }); } else { $('#evento').html('<option value="">Escolha Evento</option>'); } }); }); ---poupula as option dos select quando adiciono novo evento. $('#setor').blur(function(){ var sector = $(this).val(); $("#add").click(function(event) { cont ++; $("#new_add").append('<div class="row" id="campo'+cont+'"><div class="col"><div class="row"><div class="col"><button type="button" id="'+cont+'" class="btn btn-outline-secondary tamanho">-</button></div><div class="col"><select class="custom-select" id="evento'+cont+'" name="evento[]" tabindex="2"><option value="">Escolha Evento</option></select></div></div></div><div class="col"><textarea class="form-control" name="relato[]" id="relato'+cont+'" tabindex="3" placeholder="DESCRIÇÃO DO ACONTECIMENTO" required></textarea></div></div>'); $.getJSON('function_setor.php?search=',{setor: sector, ajax: 'true'}, function(j){ for (var i = 0; i < j.length; i++) { $("#evento"+cont+"").append('<option value="'+j.id+'">'+j.desc+'</option>'); } console.log(j); }); }); });  
      se puder me ajudar com esse problema que so ocorre quando eu troco o setor.
       
×

Important Information

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