j'ai réaliser un site avec une en-tête contenant une musique, je voudrais, que la musique ne s'actualise pas à chaque changement de page. Sachant que chaque page de mon site génère un include pour seulement changer le corps, je voudrais savoir les étapes à suivre pour empêcher la musique de s'actualiser ou alors, actualiser seulement le corps à chaque changement de page. Je ne connais presque rien en JS, je voudrais qu'on... bien, me mâche le travail ou m'envoyer un lien clair et limpide comme de l'eau de roche .
J'ai entendu parler d'AJAX et de XMLHttpRequest mais je ne sais pas du tout m'en servir et j'ai déjà réussi avec les frames mais cette fonction attire les foudres.
En effet, AJAX permettrait de charger diverses informations sur ta page sans recharger la partie qui t'intéresse.
XmlHttpRequest est en fait l'objet qui sert à effectuer un transfert AJAX.
C'est bien de lire le tuto pour comprendre comment ça fonctionne et toutes les possibilités qu'il offre, mais une fois que tu as bien compris, tu peux utiliser un framework qui "simplifie" ce transfert.
Si tu ne veux pas te casser la tête, il y a une autre solution : lancer ta musique dans une toute petite pop-up.
Ca m'a l'air trop compliqué pour moi qui ne connait que le PHP mais pas le JS, je pense que la pop-up sera la meilleure solution, à moins que quelqu'un aie un exemple concret à me donner avec XmlHttpRequest. Je réussi toujours mieux avec des exemples.
<button onclick="getPage('test.php');">Yop</button>
<div id="conteneur"></div>
<script>
function getPage(url,meth,data,conteneur) {
var meth = meth||"GET";
var data = data||{};
var conteneur = conteneur||"conteneur";
if(typeof conteneur=="string") {
conteneur = document.getElementById(conteneur);
}
var str_data = "";
for(var p in data) {
str_data += p+"="+data[p]+"&";
}
str_data = str_data.substring(0,str_data.length-1);
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return;
}
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
conteneur.innerHTML = xhr.responseText;
}
};
xhr.open(meth,url+(meth=="GET"?"?"+str_data:""),true);
if(meth=="POST") {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(str_data);
} else {
xhr.send(null);
}
}
</script>
Le clic sur le bouton va charger la page "test.php" dans le div "conteneur".
Le principe consistera à mettre tout ton site dans le "conteneur", et ta musique en dehors.
Les paramètre optionnels de la fonction peuvent normalement te permettre de changer la méthode de requête, les données éventuels de la requête, ou encore le div conteneur. (J'avoue ne pas avoir tester par contre J'ai pas le temps, je file en cours )
Merci beaucoup Golmote c'est ça que je voulais mais, comment envoyer un GET avec le bouton ? Car le corps de mon site change en fonction du GET page. Exemple : index.php?page=photoshop
Voilà merci de me répondre si cela est possible
Je relance je sujet car j'ai une erreur qui me tracasse :s tous les accents des pages à générées se transforment en point d'interrogation !
Comment les remettre normales sans les modifier un par un...
Oui mais c'est au niveau de la BDD que ça merde... Depuis les formulaires générés par XLMHTTPREQUEST, j'ai que des caractères spéciaux dans la BDD... Comment faire pour enregistrer correctement oO
Ca marche avec le decode oO, j'avais déjà essayé avec le encode mais jamais avec le decode x) Bizarre merci
Un autre truc bizarre, les formulaires en POST des pages générées ne fonctionnent pas sur IE mais fonctionnent parfaitement sur Mozilla ! Help !
Dois-je poster un nouveau post ?
Les formulaires des pages générées avec JavaScript fonctionnent seulement avec Firefox, j'ai testé sur IE et ça ne marche pas, j'ai même un ami qui a Firefox et qui ne peut pas utiliser les formulaires.
Je dois vider le cache par l'intermédiaire de PHP en insérant ce code sur la page d'accueil (et l'actualise) et ensuite je le supprime si j'ai tout compris ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.