Salut,
Encore une fois un problème avec Dojo.
Mon problème: J'ai une fonction qui me permet de créer un nouveau noeud dans un Tree.
J'ai mis des paramètres en dur dans newItem pour les tests, mais ces paramètres doivent bien entendu être dynamiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function newFolder(itemParent) { treeModel.newItem({id: "1000" , nom: "Nouveau dossier", id_site: "1107"},itemParent); store.save(); }
Ainsi, l'id doit être le prochain id du champ autoincrémental de ma table.
J'ai donc créé une seconde fonction qui appelle un script PHP via un objet xhrGet.
Mon script retourne bien la valeur attendue.
La valeur de retour de getIdEntite() est un objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /* Récupère le prochain id de la table Entite via un fichier PHP appelé en AJAX */ function getIdEntite() { var xhrArgs = { url: "../ajax/getNextIdEntite.php", handleAs: "text" } var requete = dojo.xhrGet(xhrArgs); return requete; }
Après avoir lu la doc, je me suis rendu compte que xhrGet retourne un objet Deferred.
Comment puis-je récupérer la valeur de ma table ?
J'ai essayé ceci:
sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 /* Récupère le prochain id de la table Entite via un fichier PHP appelé en AJAX */ function getIdEntite() { var xhrArgs = { url: "../ajax/getNextIdEntite.php", handleAs: "text", load: function(data) { return data; } } var requete = dojo.xhrGet(xhrArgs); }
Pourtant un alert(data) m'affiche bien la valeur de la base de données.
EDIT
-----
J'ai résolu mon problème, mais d'une manière que je n'aime pas trop.
En gros, j'ai ajouté une textbox sur la page.
Dans le xhrGet, je lance une fonction sur load, qui modifie la value de cette textbox, que je récupère ensuite dans la fonction newFolder.
Ca fonctionne, mais j'aurais préféré ne pas avoir besoin de générer un nouvel élément HTML pour cela et récupérer la valeur dans une variable.
Partager