XML et Javascript et Ajax [Réglé]
mkl Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre mkl
- Inscrit le : 24/12/2007
J'ai remarqué que PHPboost utilisait Ajax (lorsqu'on essaie de créer un compte, il ne recharge pas toute la page par exemple pour nous dire que l'adresse mail existe déjà je crois).
Ma première question est : comment faites vous pour que le site soit conforme W3C alors qu'AJAX ne l'est pas. Que se passe t'il si l'utilisateur déjactive javascript ?
Existe t'il des programmes tout fait (classes...) dans phpBoost qui permettent de générer les javascripts pour la lecture de fichiers xml (et pourquoi pas de générer les xml à partir de la base de donnée) parceque j'ai essayé de le faire manuellement et ma souris a fini dans les toilettes après 5 heures d'acharnements hier soir
.Si ce n'est pas le cas, peut être quelqu'un qui s'y connait un peu en javascript peu m'aider :
mon xml :
[code=xml]
<?xml version="1.0"?>
<donnees>
<categorie>
<id>1</id>
<nom>root</nom>
<id_cat>1</id_cat>
<categorie>
<id>3</id>
<nom>enfant1</nom>
<id_cat>4</id_cat>
</categorie>
</categorie>
<categorie>
<id>2</id>
<nom>root2</nom>
<id_cat>2</id_cat>
</categorie>
</donnees>
[/code]
mon javascript (juste le bout interessant) :
[code=javascript]
var objXML= xhr.responseXML.documentElement;
alert(objXML.childNodes.length);
for(var i=0; i<objXML.childNodes.length ; i++){
alert(objXML.childNodes.item(i).tagName);
}
[/code]
Rien que la j'obtiens des abérations. Selon lui il y a 5 branche et quand je lui fait afficher les tagName j'obtient dans l'ordre :
undefined,categorie,undefined,categorie,undefined.
J'ai fait plein d'autres tests et j'obtiens que des trucs dans le genres et impossible de trouver une doc complete sur le net.
Vous êtes mon dernier recours après la crise de folie. Merci
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Tout d'abord l'AJAX n'est pas incompatible avec les normes du W3C. Il existe cependant un problème comme tu l'évoques si l'utilisateur a bloqué le javascript. Sur PHPBoost nous avons, la plupart des cas (partout là où on ne peut pas faire autrement), mis en place une alternative "classique" qui correspond au comportement de l'application sans AJAX.
Aussi, je vois que tu souhaites utiliser du XML pour effectuer tes transferts entre le navigateur et le serveur. L'idée est bonne, mais le traitement est assez lourd, sachant surtout que l'on peut l'éviter très simplement. En général tout ce que l'on retourne est destiné à aller au même endroit, dans ce cas là on le préformate en HTML avec PHP et javascript ne fait que l'afficher. Après il existe quelques ruses pour faire passer plusieurs messages en un. Mais en gros, l'utilisation de XML pour faire ceci me paraît trop complexe, bien que comme je l'ai mentionné, l'idée soit bonne.
Ton code a cependant l'avantage d'utiliser le parser XML du navigateur qui fonctionne relativement bien et rapidement, mais l'utilisation est plus casse tête qu'en faisant comme je te l'ai suggéré. Je ne connais personnellement pas ces fonctions donc je ne pourrai guère t'aider si ce n'est en lisant la documentation.
En tous cas la crise de folie n'arrivera pas, il faut pas désespérer !
Pour qu'on t'explique plus en détails il faudrait que tu nous expliques plus concrètement ce que tu veux faire.
Voilà j'espère avoir été clair.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
mkl Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre mkl
- Inscrit le : 24/12/2007
J'ai trouvé un script libre sur le net qui permet de créer un arbre (Tafeltree), il y a déjà du code ajax qui apelle des pages en php lorsqu'on fait un drop par exemple. Mais la construction initiale de l'arbre n'est pas gérée, il faut que je le fasse moi même, pour ça je génère un xml en lisant la base de donnée et j'essaie de le parser en javascript et c'est là que ça coince.
Effectivement, je pourrait directement créer la structure de l'arbre quand j'appelle ma page arbre.php (et donc pas besoin de xml) mais j'aimerais pouvoir rafrechir l'arbre sans réinitialiser la page. Donc j'ai pas le choix, il faut que je trouve une doc claire sur le parsing du XML en javascript, mais c'est mission impossible.
Voila j'espère aussi avoir été clair.
LMdF Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre LMdF
- Inscrit le : 28/11/2007
Dès le début de ton dernier message j'ai pensé à TafelTree - ce que la suite m'a confirmé. Cela fait longtemps que je rêve de voir ce TreeView appliqué à la gestion des catégories d'un CMS comme PHPBoost et je suis heureux de voir quelqu'un vouloir donner corps à cette idée. Je ne saurais trop t'encourager dans cette voie d'autant que les difficultés semblent grandes, comme tu le montres, mais tu devrais pouvoir compter sur l'aide de l'auteur de TafelTree qui se montre très sympa sur son forum, même s'il tarde parfois à répondre, sans parler de l'aide aussi chaleureuse, et beaucoup plus réactive, sur laquelle tu peux compter ici si tu continues à faire comprendre l'intérêt de ton projet.
We want Information, Information, Information!
CrowkaiT Membre non connecté
-
Modérateur
- Voir le profil du membre CrowkaiT
- Inscrit le : 17/06/2005
- Site internet
- Groupes :
-
Equipe Historique
Pour l'instant c'est de l'ajax simple, pas de drag and drop. Mais par la suite on peut envisager de faire évoluer le système.
Après pour le drag and drop ça dépasse mes compétences en javascript
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!
mkl Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre mkl
- Inscrit le : 24/12/2007
http://www.toutjavascript.com/forums/index.php?topic=14365
Du coup j'avance pas mal avec TafelTree. J'vous montrerai le résultat.
J'aurais cependant une autre question dont je pense que vous aurez la réponse. C'est du SQL :
En fait j'ai une table avec une colonne id et une colonne nom. Imaginons que j'ai une variable $un_id (=100). Je voudrais que si on selectionne tout les elements de la base dont le nom commence par 'a' (par exemple) et qu'on les range par ordre alphabetique, je veux recupérer l'id de l'enregistrement qui est juste après celui d'id $un_id. (On suppose que celui d'id $mon_id appartient à la séléction).
Ce n'est évidement pas 101. Et je voudrais le faire en peu de requetes (une si possible) et ne pas parcourrir toutes les réponse d'un query_while car j'ai 40 000 enregistrements.
J'espère avoir été clair, Merci
CrowkaiT Membre non connecté
-
Modérateur
- Voir le profil du membre CrowkaiT
- Inscrit le : 17/06/2005
- Site internet
- Groupes :
-
Equipe Historique

J'ai une pirouette pour ta requête SQL, tu peux le faire en deux requêtes.
[code=sql]
SELECT @compt := id AS compt
FROM tatable
WHERE nom LIKE 'a%'
ORDER BY nom
LIMIT 0, 100[/code]
[code=sql]SELECT id
WHERE id > @compt
ORDER BY id DESC
LIMIT 0, 1[/code]
Voilà c'est lourd, mais ça devrait pouvoir marcher (pas testé)
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!
mkl Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre mkl
- Inscrit le : 24/12/2007
Sinon pour le code sql, dis moi si je me trompe mais je crois que le tiens me donne l'id de l'enregistrement dont l'id est directement supérieur à $un_id (et dont le nom commence par a), mais çe n'est pas ce que je cherche.
Exemple : table classée par ordre alphabetique.
id nom
7 aa
2 ab
6 ac
1 ad
3 af
Si par exemple $mon_id=6 , j'aimerai que la requete me donne 1.
CrowkaiT Membre non connecté
-
Modérateur
- Voir le profil du membre CrowkaiT
- Inscrit le : 17/06/2005
- Site internet
- Groupes :
-
Equipe Historique
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!
mkl Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre mkl
- Inscrit le : 24/12/2007
Lorsqu'on visualise une image, j'aimerai qu'on puisse cliquer sur suivant et précédent. et donc pour ça il faudrait que je connaisse l'id du suivant.
Ce n'est pas mon site, on m'a demandé un peu d'aide pour deux trois trucs et la j'avoue que je bloque.
CrowkaiT Membre non connecté
-
Modérateur
- Voir le profil du membre CrowkaiT
- Inscrit le : 17/06/2005
- Site internet
- Groupes :
-
Equipe Historique
Sinon tu pourrai aussi faire une table temporaire, triée sur les lettres, et indexée. Là ça redevient facile.
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie