11492 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous!

Je viens récemment de me mettre à jQuery et j'ai une petite question sur l'envoi de variables en POST.

J'aimerais que certaines des variables que j'envoie de pages en pages par des liens (et non des formulaires) ne s'affichent pas dans la barre d'adresse des navigateurs, c'est pourquoi j'utilise la méthode POST.

Pour cela j'utilise la fonction $.post() de jQuery :


<script language="text/javascript">
$(function () {
	$("h3").click(function() {
		var p = $(this).attr("id");
		$.post("index.php",{page:p});
		return false;
	});
});
</script>


Code html :


<h3 id="news">News</h3>
<h3 id="biography">Biography</h3>
...


J'aimerais, vous l'aurez compris, récupérer dans index.php la variable $_POST['page'] afin d'afficher les sections correspondantes.

Bon évidemment ça ne fonctionne pas ! Smiley lol

Je vous remercie d'avance pour vos conseils !
Modifié par aspx (01 Jul 2009 - 18:29)
Bonjour,
C'est normal que ça ne marche pas puisque la méthode post de jQuery est une méthode ajax, elle ne recharge pas ta page, elle envoie des informations vers un fichier dynamique et attend éventuellement une réponse.

Si tu veux vraiment utiliser jQuery pour faire ça, tu peux à la rigueur écrire un formulaire caché ayant la méthode post, et un champs page à qui tu donnes la valeur p et tu le valides, le tout en javascript.

Je pense qu'il existe un moyen plus propre avec php, cependant, je ne le connais pas. Il faut dire que je ne juge pas les url au faciès.
Modifié par loicbcn (01 Jul 2009 - 17:22)
C'est une galère pour pas grand chose je te l'accorde... Je vais plutôt utiliser des sessions PHP ça me semble plus propre et surtout... moins prise de tête. Dans mon cas ça me convient car les variables que je veux passer en POST sont utilisées dans tout le site ($lang pour la langue utilisée, $q un nombre qui permet de savoir si on a passé l'intro ou non), elles peuvent être globales.

Par contre si quelqu'un veut passer une variable cachée dans un lien... à part en envoyant un formulaire caché en même temps avec du javascript je vois pas comment faire.

Si quelqu'un a la solution je veux bien qu'il la poste, mais on va considérer mon problème comme résolu !

Merci beaucoup !
Si tu veux gérer des infos comme la langue, etc., avec des variables, tu es un peu obligé de passer par des variables GET. L'avantage du POST est de pouvoir véhiculer plus d'infos de manière plus transparente que le GET, mais ça oblige à récupérer et renvoyer les variables à chaque fois.
C'est pour cela qu'on réserve cette méthode surtout aux formulaires.

Tu peux toujours gérer tes langues et autres avec des sessions ou des cookies, si tu veux garder tes adresses claires, je pense que c'est la meilleure façon de faire.
Modifié par Skoua (03 Jul 2009 - 16:00)