Pour la manip j'appelle simplement une fonction qu'il faudra
adapter.Dans le code, l'objet "xmlprd" est le document XML et txtarea1 est une zone de texte pour l'affichage.
function listprd()
{
var nomcli = ""jchan"";
var numprd = "123456";
var odocxml = xmlprd.selectSingleNode("//client[nomclient=" + nomcli + "]");
J'ai testé et ça marche avec IE. Pour les autres navigateurs
il faudra utiliser XPath au lieu de selectSingleNode.
Bonne continuation.
cs_crow
Messages postés5Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention10 décembre 2008 23 nov. 2007 à 12:46
Bonjour,
Je trouve ce script très bien même si je comprend pas forcément tout ce qu'il fait... anfin, je cherchais un script comme celui-la pour faire une recherche de produit avec un part au lieu du numero d'abonne.. le truc c'est qu'il me rapporte une seule ligne par produit alors que j'aimerais qu'il m'affiche tous les produit qui ont le même numéro... je me doute qu'il faut faire une boucle pour qu'il continue de chercher... seulemement, je ne suis pas très doué en JS et mes essais ont été negatif...
Peux-tu m'aider ?
Merci d'avance.
jchan
Messages postés7Date d'inscriptionsamedi 14 avril 2007StatutMembreDernière intervention13 avril 2009 21 oct. 2007 à 06:36
Je n'ai pas trouvé de virus sur ce zip.J'utilise la dernière version (v.12) de McAfee VirusScan avec la dernière maj de DAT. J'ai remplacé le zip pour plus de sureté.
cs_pilou_77
Messages postés1Date d'inscriptiondimanche 26 juin 2005StatutMembreDernière intervention20 octobre 2007 20 oct. 2007 à 12:01
je signale que mon anti-virus 'a-squared' a détecté un 'Heuristic.ArchiveBomb' à la vérification du .zip de ce code.
bonne réception
jchan
Messages postés7Date d'inscriptionsamedi 14 avril 2007StatutMembreDernière intervention13 avril 2009 17 oct. 2007 à 16:12
Effectivement dans cette source le code n'est pas optimisé. Une fonction primitive
pour la création d'une ligne dans la table serait mieux, voir la création d'une
classe pour toutes les opérations.Mais ce n'était pas le but d'écrire un code
professionnelle où il ne reste plus rien à faire.Sur les forums on trouve des
bouts de codes pour manipuler une base xml mais pas d'exemple complet.D'où cette
petite contribution.
Pour le test si l'élément existe bien, la function GetItemRec(numero) effectue
cette opération. Elle retourne le noeud correspond au numero client s'il existe
sinon null.
Pour les droits admins pour l'éxécution du programme,j'ai codé trop vite. En
plaçant les sources dans le répertoire "Documents partagés", le problème est résolu.
PS:Avec du recul,je me suis dis que c'était pas normal.
En résumé avec PHP c'est la solution pour une version portable.Je commence tout juste
à m'y mettre (encore novice en la matière).
jchan.
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009 17 oct. 2007 à 11:44
Salut,
Bon, je n'ai pas tout regarde en detail, mais voici quelques remarques:
- Tu fais beaucoup d'appels a getElementById() pour le meme element. Un exemple parmis d'autres:
document.getElementById(objTR.id).appendChild(objTD0);
document.getElementById(objTR.id).appendChild(objTD1);
document.getElementById(objTR.id).appendChild(objTD2);
document.getElementById(objTR.id).appendChild(objTD3);
document.getElementById(objTR.id).appendChild(objTD4);
document.getElementById(objTR.id).appendChild(objTD5);
document.getElementById(objTR.id).appendChild(objTD6);
(et tu en fais pleins d'autres dans la meme fonction). Ces appels sont couteux. Pourquoi ne pas en faire un seul et stocker le resultat dans une variable ?
Et puis tu pourrais en profiter pour tester que l'element existe bien (il devrais etre la mais on ne sait jamais avec ces navigateurs :o) )
- Si j'ai bien compris, ton code marche uniquement sur IE. Appelons ca un exercice de style, mais ce n'est pas vraiment le but de IE et javascript d'ecrire ce genre d'application (surtout si il faut les privileges admin, donc, probablement modifier les reglages de securite (il y a des raisons si par defaut, cela n'est pas autorise...)).
AMHA, tu aurais pu poster au choix:
- Un exemple court montrant comment lire et ecrire un fichier xml en local avec les droits admins et IE (c'est le seul point original de ton source)
- Une gestion de table clients portable (eventuellement avec un script de 3 lignes php te permettant de mettre ton fichier xml sur le serveur)
- Les deux, mais separement :o)
24 nov. 2007 à 20:29
Je suppose que ta base doit être similaire comme ci-dessous.
<?xml version="1.0" encoding="iso-8859-1" ?>
<www.aufildutemps.info>
<client>
<nomclient>jchan</nomclient>
<designation>café</designation>
<marque>Terra</marque>
<origine>Colombie</origine>
<designation>café</designation>
<marque>Luna</marque>
<origine>Venezuela</origine>
</client>
</www.aufildutemps.info>
Pour la manip j'appelle simplement une fonction qu'il faudra
adapter.Dans le code, l'objet "xmlprd" est le document XML et txtarea1 est une zone de texte pour l'affichage.
function listprd()
{
var nomcli = ""jchan"";
var numprd = "123456";
var odocxml = xmlprd.selectSingleNode("//client[nomclient=" + nomcli + "]");
for(var i=0;i<odocxml.childNodes.length;i++)
{ if(odocxml.childNodes.item(i).nodeName "produit" && (odocxml.childNodes.item(i).attributes.getNamedItem("id").text numprd))
{
var oxmlprd = odocxml.childNodes.item(i);
txtarea1.value += "\n" + "Produit Numero : " + numprd + "\n"
for(var j=0;j<oxmlprd.childNodes.length;j++)
txtarea1.value += oxmlprd.childNodes.item(j).nodeName + " : " + oxmlprd.childNodes.item(j).text + "\n"
}
}
}
J'ai testé et ça marche avec IE. Pour les autres navigateurs
il faudra utiliser XPath au lieu de selectSingleNode.
Bonne continuation.
23 nov. 2007 à 12:46
Je trouve ce script très bien même si je comprend pas forcément tout ce qu'il fait... anfin, je cherchais un script comme celui-la pour faire une recherche de produit avec un part au lieu du numero d'abonne.. le truc c'est qu'il me rapporte une seule ligne par produit alors que j'aimerais qu'il m'affiche tous les produit qui ont le même numéro... je me doute qu'il faut faire une boucle pour qu'il continue de chercher... seulemement, je ne suis pas très doué en JS et mes essais ont été negatif...
Peux-tu m'aider ?
Merci d'avance.
21 oct. 2007 à 06:36
20 oct. 2007 à 12:01
bonne réception
17 oct. 2007 à 16:12
pour la création d'une ligne dans la table serait mieux, voir la création d'une
classe pour toutes les opérations.Mais ce n'était pas le but d'écrire un code
professionnelle où il ne reste plus rien à faire.Sur les forums on trouve des
bouts de codes pour manipuler une base xml mais pas d'exemple complet.D'où cette
petite contribution.
Pour le test si l'élément existe bien, la function GetItemRec(numero) effectue
cette opération. Elle retourne le noeud correspond au numero client s'il existe
sinon null.
Pour les droits admins pour l'éxécution du programme,j'ai codé trop vite. En
plaçant les sources dans le répertoire "Documents partagés", le problème est résolu.
PS:Avec du recul,je me suis dis que c'était pas normal.
En résumé avec PHP c'est la solution pour une version portable.Je commence tout juste
à m'y mettre (encore novice en la matière).
jchan.
17 oct. 2007 à 11:44
Bon, je n'ai pas tout regarde en detail, mais voici quelques remarques:
- Tu fais beaucoup d'appels a getElementById() pour le meme element. Un exemple parmis d'autres:
document.getElementById(objTR.id).appendChild(objTD0);
document.getElementById(objTR.id).appendChild(objTD1);
document.getElementById(objTR.id).appendChild(objTD2);
document.getElementById(objTR.id).appendChild(objTD3);
document.getElementById(objTR.id).appendChild(objTD4);
document.getElementById(objTR.id).appendChild(objTD5);
document.getElementById(objTR.id).appendChild(objTD6);
(et tu en fais pleins d'autres dans la meme fonction). Ces appels sont couteux. Pourquoi ne pas en faire un seul et stocker le resultat dans une variable ?
Et puis tu pourrais en profiter pour tester que l'element existe bien (il devrais etre la mais on ne sait jamais avec ces navigateurs :o) )
- Si j'ai bien compris, ton code marche uniquement sur IE. Appelons ca un exercice de style, mais ce n'est pas vraiment le but de IE et javascript d'ecrire ce genre d'application (surtout si il faut les privileges admin, donc, probablement modifier les reglages de securite (il y a des raisons si par defaut, cela n'est pas autorise...)).
AMHA, tu aurais pu poster au choix:
- Un exemple court montrant comment lire et ecrire un fichier xml en local avec les droits admins et IE (c'est le seul point original de ton source)
- Une gestion de table clients portable (eventuellement avec un script de 3 lignes php te permettant de mettre ton fichier xml sur le serveur)
- Les deux, mais separement :o)
Eric