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 :
Comment puis-je éviter cela ?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>
Pour info, voici mon .htaccess :
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]
Partager