Ir para conteúdo

Arquivado

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

Wesley Santos

Direcionar o usuário para outra página e disparar uma função

Recommended Posts

Estou com uma dúvida que não sei se é possível, mas o cenário é o seguinte:

Existe uma página onde o usuário insere o CPF do cliente e traz os dados dele (img1)

E em TODAS as outras página vai ficar uma barra de pesquisa rápida lá encima (img2), que a ideia é que quando o usuário preencher ele joga para a tela da img1 com os dados do cliente. 

 

A minha dúvida é, é possível direcionar o usuário para uma página x, ao direcionar ele já preencher um campo dessa página x e ao a página ser carregada disparar a função que busca os dados? 

 

Eu pensei em uma outra forma de fazer isso funcionar que seria meio gambiarra, se dessa forma que falei a cima não for possível, eu faço no modo gamb.

 

Capturar1.PNG

Capturar2.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citar

é possível direcionar o usuário para uma página x, ao direcionar ele já preencher um campo dessa página x 

Sim.

 

O Preenchimento automático pode ser feito de diversas maneiras... (Com ou sem persistência, com ou sem sessão) 

Um exemplo rapido (misturando tudo e deixando alguns membros putos)

 

Conteúdo:

 

Conteudo do  index.php

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	
	<input type="text" name="" id="" value="<?php echo $_GET['nome'];?>"/>
</body>
</html>

Acesse a pagina:

 index.php?nome=Dados+do+get

E veja a magica acontecer ...

 

 

Ou Via JS...

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	<div>
		<input type="text" name="nome" id="nome" />
		<input type="email" name="email" id="email" />
	
	</div>

	<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
	
	<script type="text/javascript">
		$(document).ready(function() {
			$( "#nome" ).val('Dados do JS!');
			$( "#email" ).val('test@teste.com.br');
		});
	
	
	</script>
</body>
</html>

 

Citar

página ser carregada disparar a função que busca os dados?

Sim tudo que está aqui dentro do ready() é disparado assim q o DOM está 100% carregado.

Ex:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	<div>
		<input type="text" name="nome" id="nome" />
		<input type="email" name="email" id="email" />
	
	</div>

	<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
	
	<script type="text/javascript">
		$(document).ready(function() {
			//DISPARAR FUNÇÂO!
			//minhaFuncao1
			//minhaFuncao2
			//minhaFuncao3
		});
	
	</script>
</body>
</html>

 

 

 

Talvez oq você precisa é de AJAX:

https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax#guia-definitivo-ajax

 

Porem suas duvidas de JS foram bem basicas, talvez vale a pena dar uma olhada nos exercios + links de referencia:

https://github.com/gabrieldarezzo/helpjs-ravi#exercicios-em-javascript

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@gabrieldarezzo, valeu pelas resposta. 

 

Porém nesses exemplos nenhum soluciona meu problema de vez, porque é assim tem uma página onde realiza pesquisa de usuários, porém no sistema vai existir uma barra de pesquisa rápida, que minha ideia seria pegar o valor da pesquisa rápida e jogar na página de pesquisa normal e chamar a função que trás os dados (Isso em uma função só).

 

Porém creio que a solução para isso seria deixar na página de pesquisa um código parecido com isso:

<?php
$valor = $_GET['valor']
if(empty($valor) == FALSE){
 // roda um script que joga o valor a ser pesquisado no imput e chama a função de pesquisa
}
?>

Ai a ideia é sempre que alguém preencher a barra de pesquisa rápida eu jogo nessa página o valor a ser pesquisado por GET, e no inicio ele verifica se essa variável tem conteúdo, caso sim ja chama a pesquisa, caso não faz nada, porque o usuário pode preencher o input e pesquisar algo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://api.jquery.com/trigger/

 

Ou então se precisa esperar um retorno de Ajax de pagina onde você não tem acesso:

$(document).ready(function() {
	//Só é ativado após a resposta.
	$( document ).ajaxComplete(function( event, xhr, settings ) {
		if(settings.url == '/url_do_ajax'){
			
		}
	);
});

 

Porem recomendo fortemente estudar sobre callbacks do JavaScript se esse for o seu cenário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ex do uso do trigger:

<div>
	<input type="text" name="s" id="s" />
	<button id="btn-pesquisa"></button>
</div>

<script type="text/javascript">
	$(document).ready(function() {
		$( "#btn-pesquisa" ).bind( "click", function() {
			var search = $( "#s" ).val();
			
			
			$( "#box_pagina_misteriosa" ).val(search);
			$( "#botao_pagina_misteriosa" ).trigger('click');
		});
		
	});
</script>

 

Porem nesse contexto faz mais sentido ao meu ver simplesmente reaproveitar a função da 'pagina_misteriosa'  e encaixar

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por ILR master
      Salve galera.
       
      Vou publicar um evento e quero colocar um Cronômetro regressivo que mostre em tempo real os dias, horas e minutos que faltam para determinada data, tipo:.
      Faltam 5 dias, 12:30:00 para inauguração.
       
      Qdo chegar no dia, quero que apenas apareça uma mensagem.
       
      Alguém pode me ajudar?
    • Por Danilo - Jesus voltará!
      Olá pessoal, tenho uma div a qual através de um select categorias eu trago dados de empresas do banco, aí preciso clicar nas listagens das empresas e pegar o ID quando clica no checkbox e gravar pelo ajax novamente na session feita no arquivo php tipo um carrinho de compras, que essa parte já tenho... só não to conseguindo pegar os ids gerados dinamicamente no retorno feito do ajax, eles aparecem com F12 ao inspecionar, mas não aceita eu clicar para pegar o ID, acho que é algo de DOM, mas não to sabendo fazer... alguém aí saberia me ajudar como pegar esses ids ao clicar, já que eles vem dinamicamente?
       
      obrigado
    • Por joeythai
      Boa tarde pessoal,
       
      eu criei uma página da qual tenho diversos checkbox para marcar, se tiver alguma caixinha marcada eu habilito um botão para fazer o envio ao servidor, porém, está acontecendo um problema que não consegui identificar, o que está acontecendo é o seguinte:
       
      Quando eu marco um checkbox apenas, o botão é liberado, eu clico nele e aparece um modal para preencher os dados, e nesse modal tem um combobox com opções criadas em javascript, como tem somente uma caixinha marcada as informações no combobox aparecem perfeitamente, porém, se eu marco 2 checkbox ou mais as opções do combobox se repetem, como se eu tivesse fazendo isso dentro de um looping, o que não é verdade, eis o codigo abaixo:
       
      <code>
        <!DOCTYPE html>    <html lang="en">  
         <head>   <meta charset="UTF-8">   <meta http-equiv="X-UA-Compatible" content="IE=edge">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>Document</title>   </head>  
        <body>   <input id="check-belongings" class="custom-control-input check-belongings" name="" type="checkbox" value="">   <label for="" class="custom-control-label"></label>   <div class="col-12">   <div class="md-form mt-0 mb-0 pt-0 pb-0">   <label for="reason">Motivo</label><br><br>  
        <select class="form-control md-select2" style="width: 100%; text-transform: uppercase"   id="reason_all_belongings" name="reason_all_belongings" required>   </select>   </div>   </div>
       
        <script>  
         $('.check-belongings').click(function () {    let belongingsIds = [];    let listaMarcados;  
         let optionsReason = [];   let option = null;  
        let movementsSelect = document.getElementById("reason_all_belongings");  
        optionsReason = ['Conferencia', 'Desobstrução', 'Entrega ao Cliente/Propr','  Inspeção', 'Manobra', 'Venda'  ];  
        optionsReason.forEach((reason) => {   option = new Option(reason, reason.toLowerCase());   movementsSelect.options[movementsSelect.options.length] = option;   });  
        listaMarcados = document.getElementsByClassName("check-belongings");   for (let loop = 0; loop < listaMarcados.length; loop++) {   var item = listaMarcados[loop];  
         if (item.type == "checkbox" && item.checked) {    $('.drop-all-belongings').removeAttr('disabled');    belongingsIds.push(item.value);    } else { // $('.drop-all-belongings').attr('disabled', 'disabled');   }   }   });   </script>   </body>  
        </html> </code>
    • Por Carcleo
      Pessoal,  tenho uma janela popup que vai cobrar toda a tela.
      <div id="personal" class="personal">     <label>Quantas pedras deseja adquirir?</label>          <input type="number" name="rocks" id="rocks" required placeholder="1" max="200">     <a href="<?php echo route('client.buy.raffle',[1]); ?> "><h3>RESERVAR</h3></a> </div> onde tem [1] , no <a href
       
      preciso alterar via JavaScript para o valor colocado no input no momento do clique
       
      Será que tem jeito?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.