Passage de paramètre: Jquery history
miaks
-
miaks Messages postés 1 Statut Membre -
miaks Messages postés 1 Statut Membre -
Bonjour à tous,
Je développe un site web en Ajax.
Mais lorsque je souhaite faire "précédent" ou "suivant" avec les touches du navigateur, je suis directement dirigé hors du site...
J'ai alors trouvé une piste du coté des Frameworks jQuery et jQuery-History qui me permettent d'ajouter une sorte d'ancre et donc de changer l'Url de mon site sans charger la page entièrement (ex: "ma_page#1"). Le changement de "div" marche à merveille!
Le problème, c'est qu'il faut que j'arrive à faire passer des variables PHP pour des futures traitement. C'est là que ça bloque... Je ne sais pas comment faire pour envoyer ces variables... J'essaie désespérément de les faire passer par l'url.
Voici le script JavaScript (inséré dans la balise "<head>" ) avec lequel je charge les "div".
Je fais un lien "<a>" dans la même page, dans la balise "<body>"
En gros, j'arrive à récupérer les variables idPromotion et idProduit dans le code JS mais je n'arrive pas ensuite à les faire passer par l'url du div à charger...
Si une âme charitable veut bien m'éclaircir, ce serait formidable ^^ et je la remercie d'avance!
Miaks
Je développe un site web en Ajax.
Mais lorsque je souhaite faire "précédent" ou "suivant" avec les touches du navigateur, je suis directement dirigé hors du site...
J'ai alors trouvé une piste du coté des Frameworks jQuery et jQuery-History qui me permettent d'ajouter une sorte d'ancre et donc de changer l'Url de mon site sans charger la page entièrement (ex: "ma_page#1"). Le changement de "div" marche à merveille!
Le problème, c'est qu'il faut que j'arrive à faire passer des variables PHP pour des futures traitement. C'est là que ça bloque... Je ne sais pas comment faire pour envoyer ces variables... J'essaie désespérément de les faire passer par l'url.
Voici le script JavaScript (inséré dans la balise "<head>" ) avec lequel je charge les "div".
<!-- On inclut la bibliotheque Jquery -->
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery-history.js"></script>
<script type="text/javascript">
function pageload(hash) {
// hash ne contient plus le premier caractère #
if(hash) {
/* Traintement de l'ancre */
if($.browser.msie) {
hash = encodeURIComponent(hash);
}
// "#corps" est le div a rafraichir. tabChaine[0] et [1]
contiennent les variables à passer par la méthode GET
$("#corps").load(hash + ".php?tabChaine[0]&tabChaine[1]");
}
else {
// start page
$("#corps").empty();
}
}
$(document).ready(function(){
// Initialize history plugin.
The callback is called at once by present location.hash.
$.historyInit(pageload);
// Sélection de tous les liens "a" ayant l'attribut rel égal
à history (valeur arbitraire)
$("a[rel='history']").click(function(){
//Suppression du mot clé history, pour que les liens ne soient surchargés qu'une
seule fois
this.rel = this.rel.replace(/history/, '');
// Mise à jour de l'ancre
hash = this.href;
//On récupère les paramètres passés par l'url. Chaque "~" sépare un paramètre.
parametre = hash.split('~');
//Permet de garder seulement l'url de la page, sans les paramètres
tabChaine=hash.split('#');
hash = tabChaine[1].split('~')[0];
// Chargement dans l'historique et appel de pageload
$.historyLoad(hash);
// Désactivation du clic du lien "a"
return false;
});
});
</script>
Je fais un lien "<a>" dans la même page, dans la balise "<body>"
<a rel="history" href="#promotions~idPromotion=2~idProduit=1" />
En gros, j'arrive à récupérer les variables idPromotion et idProduit dans le code JS mais je n'arrive pas ensuite à les faire passer par l'url du div à charger...
Si une âme charitable veut bien m'éclaircir, ce serait formidable ^^ et je la remercie d'avance!
Miaks
A voir également:
- Passage de paramètre: Jquery history
- Remettre parametre usine pc - Guide
- Parametre dns - Guide
- Parametre windows - Guide
- Passage qwerty azerty - Guide
- Netflix paramètre compte - Guide
2 réponses
Salut,
J'utilise aussi JQuery pour faire un site web dans le cadre d'un stage. Pour passer les parametres JS, on utilise la fonction ajax():http://jquery.jarodxxx.com/manuel/Les-fonctions-AJAX/ajax/
c'est une fonction qui recharge la page et tu peux lui passer les variables en POST dans données. Apres dans ta page php, tu fais un test if (isset($_POST[machin])) et tu recupere tes données.
Voila, je sais pas si ça te servira mais j'aurais essayé :D
J'utilise aussi JQuery pour faire un site web dans le cadre d'un stage. Pour passer les parametres JS, on utilise la fonction ajax():http://jquery.jarodxxx.com/manuel/Les-fonctions-AJAX/ajax/
c'est une fonction qui recharge la page et tu peux lui passer les variables en POST dans données. Apres dans ta page php, tu fais un test if (isset($_POST[machin])) et tu recupere tes données.
Voila, je sais pas si ça te servira mais j'aurais essayé :D
Salut john!!
Merci pour ta réponse ^^. Sa fait un moment que j'attendais de l'aide mais sans résultat jusqu'à maintenant :) .
J'avais déjà vu cette cette fonction mais je n'ai toujours pas compris son fonctionnement... Si j'utilise cette méthode, je n'ai donc plus besoin du code que j'ai précédemment poster ???
Si tu pouvais me montrer un petit exemple concret de son fonctionnement, ce serait génial :D. J'ai regardé les exemples de la documentation que tu m'a indiqué mais je ne comprend toujours pas comment passer les paramètres PHP...
Merci beaucoup pour ton aide!!!
PS: Je passe le bts cette semaine donc je ne serai pas très présent pour poursuivre le problème... Par contre, la semaine prochaine, il n'y a pas de problème!!! ^^
Miaks
Merci pour ta réponse ^^. Sa fait un moment que j'attendais de l'aide mais sans résultat jusqu'à maintenant :) .
J'avais déjà vu cette cette fonction mais je n'ai toujours pas compris son fonctionnement... Si j'utilise cette méthode, je n'ai donc plus besoin du code que j'ai précédemment poster ???
Si tu pouvais me montrer un petit exemple concret de son fonctionnement, ce serait génial :D. J'ai regardé les exemples de la documentation que tu m'a indiqué mais je ne comprend toujours pas comment passer les paramètres PHP...
Merci beaucoup pour ton aide!!!
PS: Je passe le bts cette semaine donc je ne serai pas très présent pour poursuivre le problème... Par contre, la semaine prochaine, il n'y a pas de problème!!! ^^
Miaks