[AJAX] AJAX - req.status == 200
salut,
j'ai un petit souci que je ne m'explique pas, sans doute pourrez-vous m'aider :D.
J'ai une page php (file_manager.php) dans laquelle se trouve une requete AJAX qui va vers un autre fichier php (get_folder_content.php) qui fait certaines actions en fonction des variables passées.
ça fonctionne bien, sauf pour une qui se déroule en deux étapes :
* Première action: je récupère via responseText un formulaire tout simple (pour entrer le nom d'un nouveau dossier), jusque là ça marche
* Seconde action: je soumet le formulaire pour créer le dossier.
mais c'est là le problème, if(req.status == 200) n'est jamais vérifié !
Si j'affiche directement ma page get_folder_content.php directement avec les bonnes variables dans l'url, elle s'affiche correctement!
voici ma fonction AJAX - pour reprendre un peu avec les tests que je me suis mis, quand new_folder == 2, test6 ne s'affiche jamais...
Code:
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
| function getFolderContent(f_id,new_folder){
var req = null;
if(window.XMLHttpRequest) //firefox
req = new XMLHttpRequest();
else if (window.ActiveXObject) {//IE
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}
req.onreadystatechange = function(){
if(req.readyState == 4)
{
alert('test5')
if(req.status == 200)
{
alert('test6')
document.getElementById("folder_content").innerHTML= req.responseText;
}
else
{
alert("error")
}
}
};
// GET THE CONTENT OF ONE SELECTED FOLDER
if (f_id != ''){
req.open("GET", "../functions/get_folder_content.php?folder_id=" + f_id);
req.send(null);
}
//DISPLAY THE FORM TO CREATE A NEW FOLDER
if (new_folder != ''){
if (new_folder == 2){
new_name = document.forms["new_folder_form"].elements[0].value
alert(new_name + new_folder)
req.open("GET", "../functions/get_folder_content.php?new_folder=" + new_folder + "&new_folder_name=" + new_name);
}
else {
req.open("GET", "../functions/get_folder_content.php?new_folder=" + new_folder);
}
req.send(null);
}
return false
} |
voici le contenu de ma page get_folder_content.php (je ne met pas tout)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
if (isset($_GET['folder_id'])){
...
}
elseif (isset($_GET['new_folder'])){
if ($_GET['new_folder'] == 1){
echo '<tr><td align="center">
Please enter here the name of your new folder<br>
<form name="new_folder_form" onsubmit="getFolderContent(\'\',\'2\')">
<input type="text" name="new_folder_name">
<input type="submit" value="create">
</form>
</td></tr>';
}
elseif ($_GET['new_folder'] == 2 && !empty($_GET['new_folder_name'])){
$new_folder_name = $_GET['new_folder_name'];
echo '<tr><td align="center">
New folder '.$new_folder_name.' created, thanks !
</td></tr>';
}
} |
Merci d'avance pour le ptit coup de pouce
Julien