Bonjour,
Me voilà encore en perdition... depuis quelques heures...
J'expose mon problème : sur mon site (
http://www.demapage.fr[/url],si vous voulez vous rendre compte du problème), je voudrais que mon formulaire d'inscription se charge grâce à l'AJAX (j'aime pas trop ce nom, mais je ne sais pas quoi dire d'autre, HttpRequest ??). C'est pas forcément nécessaire ici, c'est vrai, mais je m'en sers aussi pour la suite de mon site (ensuite, j'essaierai de bosser sur une méthode plus accessible, à savoir charger tout de même les choses si le navigateur ne supporte pas l'HttpRequest). Bref, revenons en à ma chose... J'utilise Firefox et tout semble fonctionner correctement. (oh joie !), mais sur Internet Explorer c'est une autre histoire : on peut charger le formulaire 1 fois, mais pas 2 !!! Après tout se bloque sur 'Patientez Svp...' (et c'est pareil pour les autres pages de mon site où c'est carrément très génant).
J'ai alors commencé à égréner les heures à la recherche d'une solution (je n'ai rien d'un programmeur expérimenté...) et suite à mes recherches, j'ai vu qu'en vidant le cache de mon IE 6.0, ça marche... Donc d'après ce que j'ai trouvé, il suffit d'inclure ce code dans la page chargée :
pour interdir la mise en cache sous IE... et donc plus de problème...
Et bien si
. Pour moi, ça ne change rien... Je ne sais pas si je ne mets pas ce code au bon endroit (je pensais que les 'header' devait se mettre au tout début..., mais là j'en vient à vouloir tout jeter par la fenêtre alors je demande de l'aide ! (avant !)
Pour info, ma fonction open_page() appelée quand on clicque sur 'Inscrivez-vous' est inspirée de ce que j'ai trouvé sur OpenWeb :
et mon formulaire est une page html classique avec <head> et <body>... (mais j'ai aussi essayé sans) et renommée en .php depuis que j'ai ajouté les 'header' :
J'espère ne pas avoir mis un message trop long, mais si il vous faut encore des indications, n'hésitez pas...
Merci d'avance.
Fred.
Modifié par fretoune (12 Jan 2006 - 13:36)
Me voilà encore en perdition... depuis quelques heures...
J'expose mon problème : sur mon site (

J'ai alors commencé à égréner les heures à la recherche d'une solution (je n'ai rien d'un programmeur expérimenté...) et suite à mes recherches, j'ai vu qu'en vidant le cache de mon IE 6.0, ça marche... Donc d'après ce que j'ai trouvé, il suffit d'inclure ce code dans la page chargée :
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-control: private");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
pour interdir la mise en cache sous IE... et donc plus de problème...
Et bien si

Pour info, ma fonction open_page() appelée quand on clicque sur 'Inscrivez-vous' est inspirée de ce que j'ai trouvé sur OpenWeb :
var http_request = false;
var req;
function getHTTPObject()
{
var xmlhttp = false;
/* Compilation conditionnelle d'IE */
/*@cc_on
@if (@_jscript_version >= 5)
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
/* on essaie de créer l'objet si ce n'est pas déjà fait */
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
xmlhttp = false;
}
}
return xmlhttp;
}
function open_page(url) {
/* Création de l'objet : */
var xmlhttp = getHTTPObject();
/* Préparation d'une requête asynchrone de type GET : */
xmlhttp.open("GET",url,true);
/* Effectue la requête : */
xmlhttp.send(null);
if (xmlhttp)
{
var div = document.getElementById('ajax_div');
div.innerHTML = "Chargement de la page - Merci de patienter...";
div.style.display = "block";
div.style.top = "35%";
/* on définit ce qui doit se passer quand la page répondra */
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState == 4) /* 4 : état "complete" */
{
if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
{
/*
Traitement de la réponse.
*/
div.innerHTML = xmlhttp.responseText;
div.style.top = "15%";
}
else {
div.innerHTML = "Il y a eu un problème, merci de ré-essayer";
}
}
}
}
}
et mon formulaire est une page html classique avec <head> et <body>... (mais j'ai aussi essayé sans) et renommée en .php depuis que j'ai ajouté les 'header' :
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-control: private");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
span.hidden{
display: none;
}
span.error{
display: inline;
color: black;
background-color: pink;
}
</style>
</head>
<body>
<span id="close_popup" onclick="hide_popup();">X</span>
<div id="titre_popup">
<span id="titre_rss">
Demandez votre Démapage, c'est gratuit !
</span>
</div>
<div id="corps">
<form method="POST" action="valider_inscription.php" name="form_inscruption" id="form_inscription">
<h6 style="margin: 20px;">Conformément aux lois informatiques, vous pourrez à tout moment demander la suppression des informations vous concernant. Aucune information n'est transmise à un tiers.</h6>
<fieldset id="form_1" class="showed">
<label for="newlogin"><p>Choisissez votre login :
<input type="text" id="newlogin" name="newlogin" value="" size="20" onfocus="document.getElementById('info_login').className = 'vu_enligne';" onkeyup="checklogin(this.value);" onblur="document.getElementById('info_login').className = 'cache';" />
<span class="cache" id="checkname"><h6 style="display:inline;">Ce login est déjà pris...</h6></span>
<span id="info_login" class="cache"> etc etc etc...
</html>
J'espère ne pas avoir mis un message trop long, mais si il vous faut encore des indications, n'hésitez pas...
Merci d'avance.
Fred.
Modifié par fretoune (12 Jan 2006 - 13:36)