Ir para conteúdo
Sara Alves

Resgatar valor query pelo load do jquery

Recommended Posts

Olá amigos,

 

Estou tentando chamar uma pagina através do load, essa pagina terá uma querystring que eu quero pega-la na pagina de chamada, porém o valor vem como null quando eu tento através do load, fora dele chamando a pagina sozinha, está tudo ok.

 

São 2 páginas, 1 principal e a 2 que trara um alert de acordo com o valor passado pela query

Página Principal (index.html)

<div id="content">resultado</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function carrega(v) {
	$("#content").load("/query/video.html?v="+ encodeURIComponent(v), function(response, status, xhr) {
		if (status == "error") {
			//alert("ocorreu um erro")
		} else {
			//alert("ok")
		}
	});
}

carrega("social");
</script>

Segunda página (video.html)

<script>
function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var foo = getParameterByName('v');
alert(foo);
</script>

Se você fizer o teste chamado já a segunda pagina com a query assim /video.html?v=teste123 um alert de "teste123" vai aparecer, porém quando tento fazer isso pela página principal passando o parametro da query e trazendo o resultado por load, simplesmente da erro e o valor vem como null.

Alguém poderia me explicar aonde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já passei pelo mesmo problema, e resolve de um forma... diferente...

 

quando você usa o window.location.href ... você está dizendo literalmente que quer a url da janela do browser.... o que não é verdade no seu caso.

 

o que você pode fazer...

 

antes do load...

 

crie uma variável compartilhada no window...

 

<div id="content">resultado</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function carrega(v) {
  
  window.sharedV = encodeURIComponent(v);
	$("#content").load("/query/video.html?v="+ encodeURIComponent(v), function(response, status, xhr) {
		if (status == "error") {
			//alert("ocorreu um erro")
		} else {
			//alert("ok")
		}
	});
}

carrega("social");
</script>

 

E na outra página ... 

 

<script>
function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var foo = window.sharedV||getParameterByName('v');
alert(foo);
</script>

 

 

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma segunda forma de fazer:

 

<div id="content">resultado</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function carrega(v) {
	$("#content").load("/query/video.html?v="+ encodeURIComponent(v), function(response, status, xhr) {
		if (status == "error") {
			//alert("ocorreu um erro")
		} else {
			//alert("ok")
		}
	}).data("v",encodeURIComponent(v));
}

carrega("social");
</script>

E na outra pagina:

 

<script>
function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var scriptTag = document.scripts[document.scripts.length - 1];
var parentTag = scriptTag.parentNode;

var foo = $(parentTag).data("v")||getParameterByName('v');
alert(foo);
</script>

 

  • Obrigado! 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Kelven
      Olá pessoal tudo bem?
       
      Então eu quero colocar um formulário de newsletter em um servidor q não tem suporte para php, o negócio é q depois que a pessoa clica em se cadastrar eu quero que ela seja redirecionada para outro site, então gostaria de saber como posso estar fazendo isso usando apenas javascript, jquery ou ajax com o API do Mailchimp? Porque já procurei muito e não achei, só achei em php.
    • Por Diego Carlos
      Fiz um laço .each que retorna alguns button:   $(document).ready(function(){ listarPedidos() var consultas = setInterval(listarPedidos, 4000); }); function listarPedidos(){ $.getJSON('conectar/_pedidos/listaPedidos.php', function (data) { $.each(data, function(i, valor){ elementoFILA += "<tr id='statusFILA'>"; elementoFILA += "<td>" + valor.PED_ID + "</td>"; elementoFILA += "<td>" + valor.PED_DATA_N + "</td>"; elementoFILA += "<td>" + resultado + " / " + valor.CLI_TEL + "</td>"; elementoFILA += "<button class='btn btn-info' id='btnVisu' title='Visualizar Pedido'><i class='fas fa-eye'></i> </button>"; elementoFILA += "<button class='btn btn-primary' title='Editar Pedido'><i class='fa fa-pencil-alt'></i> </button>"; elementoFILA += "<button class='btn btn-dark' disabled='' title='Setar Saiu Entrega'><i class='fa fa-motorcycle'></i> </button>"; elementoFILA += "<button class='btn btn-dark' id='btnFinalizar' disabled='' title='Finalizar Pedido'><i class='fa fa-check'></i> </button>"; elementoFILA += '</td>' elementoFILA += "</tr>"; } Minha dificuldade é pegar linha id='btnVisu'.
      Estou tentando fazer dessa forma, mas não da certo:
      $('#btnVisu').click(function () { alert("clicou"); });  
       
      já fiz com class também mas não deu, engraçado que dessa forma deveria pelo menos pegar o primeiro da lista e não pega
       
      dês de já agradeço
       
       
    • Por jaquelss
      Estava fazendo download de coisas que uso no trabalho, mas parece que esqueci de algo. Sempre dá esse erro, mas tecnicamente parece que tá tudo ok?
      Eu esqueci algum programa ou algo do código em si?
      Agradeço desde já.
    • Por VCastilho
      Boa Tarde
      Estou tentando desenvolver um Filtro Inteligente, no qual funcionaria da seguinte forma:

      Filtro 1         Filtro 2          Filtro 3          Filtro 4 
      Opção 1
      Opção 2
      Opção 3


      Ao selecionar a Opção 1 do Filtro 1 liberaria as opções do filtro 2

      Filtro 1         Filtro 2              Filtro 3          Filtro 4 
      Opção 1      Opção 1 - a     
                           Opção 1 -b
                           Opção 1 -c

      Assim escolhendo a opção do filtro 2 liberaria as opções do Filtro 3 e assim por diante
      Ao escolher a Opção 2 do Filtro 1 liberaria outras opções

      No caso preciso aplicar na plataforma da Tray, que é o de menos porém não consigo chegar ao código certo
      Estou tentando utilizar o HTML e o JQuery em conjunto para isso, conseguem me ajudar? Realmente estou perdido na situação

      Atenciosamente Vinicius Castilho
    • Por lucianfpaula
      Olá gostaria de saber se alguém poderia me dar a direção para o seguinte:
      Quero desenvolver um serviço do tipo wix, onde a pessoa pode criar o site dela baseado em um template que irá ter no sistema. muito grato
×

Informação importante

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