Appel ajax avec url rewriting
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:
<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:
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:
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:
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 :
Citation:
<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 :
Citation:
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 :
Citation:
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)/(.+)$ index.php?langue=$1&module=$2&action=$3¶m=$4 [L]
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)$ index.php?langue=$1&module=$2&action=$3 [L]