Bonjour,

Je me permets de vous soumettre mon probl�me. Cela fait un moment que je tourne en rond sur le sujet.

Je synchronise des listes d�roulantes sur une page php � l'aide de code javascript "AJAX". Voici la fonction qui me permet de le faire :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function makeRequest(url,id_niveau,id_ecrire,id_prod,num_option_sup,id_encours){
	var http_request = false;
		//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
        if (!http_request) {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
        http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
		// lancement de la requete
		http_request.open('POST', url, true);
		//changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		obj=document.getElementById(id_niveau);
		val_obj=obj.value.split('|');
		obj_encours=document.getElementById(id_encours);
		val_obj_encours=obj_encours.value.split('|');
		data="val_sel="+val_obj[0]+"&id_prod="+ id_prod + "&num_option_sup=" + num_option_sup + "&val_encours="+val_obj_encours[0];
		http_request.setRequestHeader("Content-length", data.length);
        http_request.send(data);
}
 
function traitementReponse(http_request,id_ecrire) {
	var affich="";
 
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
					// cas avec reponse de PHP en mode texte:
			//chargement des elements reçus dans la liste
			var affich_list=http_request.responseText;
			obj = document.getElementById(id_ecrire); 
            obj.innerHTML = affich_list;
		} 
		else {
                alert('Un problème est survenu avec la requête.');
        }
 
    }
}
Le site sur lequel je travaille est d�j� en production et ses url sont r��crites. Aucun probl�me sur la r��criture des url, elle a �t� �prouv�e.
Or pour la synchronisation des listes d�roulantes, tout se passe bien tant que je fonctionne avec une page dont l'url n'est pas r��crite. Mais d�s que je passe en mode url rewriting, le http_request.status revient en erreur 404 dans la fonction traitement Reponse.

Les url r��crites sont de ce type
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
# Produit avec page et critères :
RewriteCond %{QUERY_STRING} ^page=([0-9]+)&tri_prix=([0-9]+)&tri_marque=([0-9]+)$ 
RewriteRule ^([0-9]+)-([-a-z]+)/([0-9]+)-([0-9]+)-([-a-z]+)\.php$ /details.php?CAT=$1&SCAT=$3&ID_PROD=$4&page=%1&tri_prix=%2&tri_marque=%3 [L]
Si vous avez une id�e, je vous remercie d'avance.