Ir para conteúdo

Arquivado

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

DiogoJefferson

Como passar variável pela URL (em JavaScript) sem atualizar página?

Recommended Posts

Como faço para enviar um valor pela URL em javascript sem que a página seja atualizada?


Já tentei usando: window.location = "exemplo.php?id=" + valor. Entretanto a página é atualizada.


Sugestões?


Obrigado!


Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que vc mandar pela URL a página será alterada.

 

É possível escrever lá, com pushState(), mas dai vc não conseguirá recuperar esse dado da URL com a tua linguagem server-side, que creio ser o teu objetivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William Bruno, será que é possível fazer um window.location sem que a página suba?

 

Tenho um link que chama uma funcao js passando por parâmetro um valor armazenado numa variável php.

Quando essa função é chamada ao clicar no link, a visibilidade da div(inicialmente oculta, visibility="hidden") muda para "visible". Dentro da Div é preciso pegar o valor que foi passado por parâmetro para a função js. Para resolver esse problema, enviei a variável via get na função js para que eu pudesse buscá-la via php. O resultado é quase o esperado, digo "quase" porque a Div é exibida mostrando o valor da variável passada por url, ou seja, o meu objetivo é alcançado até aqui. Entretanto a Div muda a sua visibilidade para "hidden" logo em seguida, ficando oculta por conta do refresh do comando "window.location" (comando usado para passar variavel via GET).

 

Essa é a minha dúvida. Como faço para corrigir esse problema?

 

Segue o código:

<html>
 
<head>
 
<title>Teste</title>
<script type="text/javascript">
 
function ExibeDiv(valor){
 
if(document.getElementById("divTeste").style.visibility == "hidden"){
document.getElementById("divTeste").style.visibility = "visible";
} else {
document.getElementById("divTeste").style.visibility = "hidden";
}
 
window.location = "?id=" + valor;
 
}
 
</script>
    
</head>
 
<body>
 
<div id="divTeste" style="height:50%; width:50%; top: 25%; left:25%; background-color:#6CF; position: absolute; visibility:hidden;">
 
    <?php
 
$variavel_url = $_GET['id'];
 
echo $variavel_url;
 
?>
 
</div>
 
<?php
$teste = 2;
?>
 
<a href="#" onClick="ExibeDiv('<?php echo $teste ?>'); return false;">botao</a>
 
</body>
 
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum.. você não vai conseguir fazer essa comunicação de js com php dessa forma não.

 

Sempre que você fizer window.location você terá um refresh.

O pushState() vai escrever na URL, mas não irá repassar para o php.

 

Para fazer js conversar com php, a saída é ajax.

 

Mas vendo o seu código, porque você precisa do php ? não dava pra fazer tudo só no js não ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que eu preciso desse valor dentro da div para fazer uma busca via PHP no banco de dados. Esse valor é uma identificação de uma linha de informações que tenho armazenado no meu banco. Desta forma, dentro da div, estará disponível as informações referentes aquela identificação (valor passado por parâmetro na função js).

 

Eu simplifiquei o código para esta parte para que a galera aqui do fórum pudesse entender melhor, já que o código inteiro do meu sistema está complexo devido ao tamanho e várias outras funções contidas ali.

 

Olha, consegui escrever na URL fazendo window.location = "#?id=" + valor;

 

Assim consigo passar a variável pela URL sem que a página seja alterada. Entretanto, o PHP (escrito dentro da div) não consegue buscar esse valor já que nada foi atualizado. Preciso agora atualizar SOMENTE a div, certo? O problema é que isso só é feito com ajax, ou existe uma forma de fazer com js?

 

Não sei programar em ajax, sou iniciante na área de programação :(

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, somente ajax então.

 

Leia alguns tutoriais, é mais simples do que parece.

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.