Bonjour,

J'ai détecté un problème lié semble t-il à l'URL Rewriting dans ma tentative de programmer des listes déroulantes liées.

Dans la partie html, j'ai ceci :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<select name="diplomeEnsfeaSpecialisation" onchange="restreindreOption(this.value);">

Sur sélection dans la liste, ma fonction est bien appelée puisqu'un simple alert('coucou') fonctionne.

Si je mets l'ajax qui suit, ça fonctionne et il me dit bien coucou :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
	function restreindreOption(specialisation)
{
    $.ajax({
		type: 'POST',
		url: '[chemin/vers/le/fichier/]aj_restreindre_option.php',
		data: 'specialisation='+specialisation,
		dataType: 'text',
		cache: 'false',
		success: function(liste_options)
		{
			/*$('#diplomeEnsfeaOption').html(liste_options); */
			alert('coucou');
		}
	});
}

Pour tester, j'ai mis seulement ceci dans aj_restreindre_option.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
echo 'appel ajax réussi';

Mais si je remplace le alert('coucou') par ceci, j'obtiens dans la boîte le code HTML de ma page avec un message d'erreur donné par mon programme :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
		success: function(liste_options)
		{
			/*$('#diplomeEnsfeaOption').html(liste_options); */
			alert(liste_options);
		}

Message d'erreur de mon programme renvoyé dans la page HTML :
<div id="contenu">
<div id="error_msg">
ERREUR !<br />
L'action demandée n'existe pas ! </div>

</div><!-- Fin contenu -->


La page où se trouve la liste déroulante est http://localhost/pef/fr/Inscription/ajouter. L'URL est parsée par le .htaccess afin de passer les paramètres suivants :
$_REQUEST :

Array
(
[langue] => fr
[module] => Inscription
[action] => ajouter
)

Les paramètres sont interprétés par mon programme pour chercher le fichier ajouter.php dans l'arborescence de l'application.

J'ai placé le fichier aj_restreindre_option.php au même endroit que ajouter.php.

Le alert(liste_options) donne, au début de son retour, ceci, résultant de l'affichage de $_REQUEST dans l'index.php appelé par l'URL Rewriting :

Request_uri : /pef/fr/Inscription/application/module/Inscription/Controller/aj_restreindre_option.php<br />$_REQUEST : <pre>Array
(
[langue] => fr
[module] => Inscription
[action] => application
[param] => module/Inscription/Controller/aj_restreindre_option.php
[specialisation] => 5
)
</pre>
Comment puis-je éviter cela ?

Pour info, voici mon .htaccess :
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)/(.+)$ index.php?langue=$1&module=$2&action=$3&param=$4 [L]
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)$ index.php?langue=$1&module=$2&action=$3 [L]