Objet TDC activeX , recuperation valuer DATAFLD pour la placer dans une variable
hambis
Messages postés4Date d'inscriptionvendredi 5 juin 2009StatutMembreDernière intervention21 juin 2009
-
20 juin 2009 à 13:44
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
22 juin 2009 à 09:14
Bonjour a tous
Si vous pouvez m aider au problème suivant :
J utilise l objet TDC Active X (I.Expl.) pour afficher une liste d articles
contenu dans un fichier TEXTE
Voici un exemple du fichier texte lu par l objet TDC
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 20 juin 2009 à 14:28
je sais pas mais en attendant une réponse plus précise voici comment procéderais pour essayer de trouver... en dehors de goolgle ;o)
je passe toutes mon objet avec les données récupérées en paramètre de la fonction éxécutée lors du onclick et dans cette fonction je met un alert(dump(monArgument));
function dump(val,html,offset) {
if(!offset) {
offset = "";
}
b = "\n";
e = " ";
if(html) {
e = " ";
b = "
";
}
if(val == {}) {
return "{}";
}
if(val == null) {
return "null";
}
var ret = offset+"{"+b;
for(var k in val) {
if(typeof val[k] == 'function') {
ret += offset+e+e+e+e+k+": function() {},"+b;
continue;
}
ret += offset+e+e+e+e+k+": ";
if(!val[k]) {
ret += "null";
}
else if(typeof val[k] == 'object') {
ret += dump(val[k],html,offset+e+e+e+e);
}
else {
ret += val[k];
}
ret += b;
}
ret += offset+"}"+b;
return ret;
}
Je sais pas si ça t'aidera mais ça vaut toujours le coup d'essayer... .. .
hambis
Messages postés4Date d'inscriptionvendredi 5 juin 2009StatutMembreDernière intervention21 juin 2009 20 juin 2009 à 16:53
Bonjour Mr
Merci pour ta réponse si rapide
Seulement je ne sait pas si ça correspond a mon besoin
Comment l appliquer ?? ici
Bref je re-précise mon besoin par un model de ma page XHTML
-----------------------
VOICI UN MODEL D UTILISATION DE L OBJET TDC
<!------- Le fichier Listevideo.txt a lire par le TDC---------------------->
<!-------- On souhaite la recuperation de la valeur DATAFLD apres ONCLICK-------->
<script language="javascript">
function update()
{
var txt ;
txt=id_URLvideo.innerText;
window.alert(txt) ;
// ICI JE SOUHAITE RECUPERER LE datafld = "URLvideo"
// QUI CORRESPOND a l ITEM sur lequel on a fait onclick
// LE PROBLEME ICI JE RECOIT une valeur UNDEFINE au lieu de la // valeur souhaitee "videolib/video2.mpg"
// CE QUI VEUT DIRE QUE LE FAIT DE CLICKER SUR UN ITEM DE LA // TABLE AFFICHEE NE RENVOI PAS LA VALEUR QUI S AFFICHE
// QUELLE EST LA SOLUTION ????
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 20 juin 2009 à 17:14
d'ou vient id_URLvideo
j'ai comme l'impression que tu ne l'instancie nul part... si ce n'est que c'est l'id de ton lien donc c'est normal que tu ne récupère rien... si je tu met
alert(id_URLvideo);
dans ta fonction update() tu as quoi... si tu as un objet fais
alert(dump(id_URLvideo))
tu trouvera peut être l'attribut qu'il faut que tu récupère... mais à la vu du code j'en doute... sinon essaye...
video1
video2
<script language="javascript">
function update(url) {
alert(url);
}
</script>
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 21 juin 2009 à 07:29
Bonjour,
<!------- Le fichier Listevideo.txt a lire par le TDC---------------------->
~URLvideo~@~URLtext~
~videolib/video1.mpg~@~text1~
~videolib/video2.mpg~@~text2~ <<---- onclick
~videolib/video3.mpg~@~text3~
..............................................
~videolib/video20.mpg~@~text20~
je n'ai pas bien compris ?
c'est un fichier texte ? que tu lis ? qui t'es donné par l'active X ? ou quoi ?
dont l'activeX se sert pour te créer quelque chose ?
car faire un onclick la dessus : ~videolib/video2.mpg~@~text2~ : ???
tu lances quelque chose dans <object id = "objTDC"
du style document.getElementById("objTDC").ordre ?
ou il alimente automatiquement quelque choses dans le ???
>>LE PROBLEME ICI JE RECOIT une valeur UNDEFINE
>>au lieu de la // valeur souhaitee "videolib/video2.mpg"
quand ?
quand tu fais : txt=id_URLvideo.innerText; window.alert(txt) ; ???
déjà, j'aurais fais : var txt= document.getElementById("id_URLvideo") .innerText;
même si txt =id_URLvideo.innerText; ça devrait fonctionner
hambis
Messages postés4Date d'inscriptionvendredi 5 juin 2009StatutMembreDernière intervention21 juin 2009 21 juin 2009 à 17:29
Bonjour Bul3
Quelques explications concernant tes questions :
1/ J ai un fichier texte FORMATE avec de délimiteur que je crée part ex. avec Notpad
nomme Listevideo.txt afin de distinguer les DATA en 2 colonnes
Attention : La premiere Ligne avec les 2 NOM correspond au variables que DATAFLD doit pointer
ici ~URLvideo~@~URLtext~
2/ Je charge l object ActiveX (IE) TDC Tabular Dynamic Control
<object id = "objTDC" Cet objet point sur mon Fichier TEXTE Listevideo.txt" />
3/ Je crée une table avec 2 colonnes <table ID="TableURL" datasrc ="#objTDC" > qui point sur l ID objTDC 4/ Je définit le masque DATAFLD avec le nom de chaque variable (URLvideo et URLtext) 5/ Je lance la page et automatiquement il m affiche UN TABLEAU
qui correspond a l image de mon fichier TEXTE
(Deux lignes suffisent pour afficher tout le fichier)
<tbody>
</tbody>
6/ Sur ce tableau affiche je souhait selectionner un element ( une Video) pour la lancer
Donc je place une fonction JS onclick pour me donner la valeur de cet element du tableau
7/ Cette valeur qui sera par ex. ici le nom de la video a lancer : videolib/video2.mpg
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 21 juin 2009 à 18:39
ok
>>il m affiche UN TABLEAU qui correspond a l image de mon fichier TEXTE...
>> Donc je place une fonction JS onclick...
donc ????
txt= id_URLvideo.innerText;
alert(tx); ça plante ici ????
ça ne devrait pas !
même nom rempli, l'élément existe bien...
même si j'aurais fais :
var txt= document.getElementById("id_URLvideo") .innerText;
alert(txt);
ou alors, on n'a pas tout,
et un autre élément à une name ou un id = id_URLvideo ! par exemple ?
>>onclick pour me donner la valeur de cet element du tableau
ce n'est pas ce qui est fait ? si ?
id_URLvideo.innerText c'est le contenu rien de plus.
hambis
Messages postés4Date d'inscriptionvendredi 5 juin 2009StatutMembreDernière intervention21 juin 2009 21 juin 2009 à 20:48
Salut Bul3
1/ Le test sans la reference getElementById() ne marce pas - il affiche undefined
2/ J ai testée ta proposition avec txt= document.getElementById("id_URLvideo") .innerText; alert(txt);
Ca marche MAIS pas tout a fait !
En effet lorsque je click sur un élément affiche par TDC dans le tableau il m envoi l alert avec une VALEUR cette fois ci / contrairement a la méthode sans le getElementById() /
MAIS le problème c est qu il m envoiTOUJOUR la première valeur de la table et pas la valeur de la ligne ou j ai clicke.
Je pense que le fait que le tableau s affiche entierement
a l aide de la meme ligne unique pour toute les LIGNES DU FICHIER TEXTE :
Alors il ne doit pas conserver la valeur individuelle pour chaque ligne dans cette varriable
referencee par getElementById()
3/ Pour confirmer cette hypothese j ai suprime la TABLE
et j ai gere une seule ligne d affichage.
( ici on ne reference pas de TABLE <table ID ="TableURL" datasrc = "#objTDC" > )
4/ Ensuite je fait un deplacement manuel de l enregistrement suivant....par
<meta http-equiv ="Content-Type" content= "text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cuser%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
--></style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]--> objTDC.recordSet.MoveNext();
Dans ce cas je recoit la bonne valeur avec txt =document.getElementById("id_URLvideo").innerText; alert(txt);
MAIS CECI NE CORRESPOND PAS A MON PROJET car je voulait visualiser plusieurs elements a la fois pour selectionner un elements dans la table.
Je pense qu il fait trouver une autre solution.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 22 juin 2009 à 09:14
enfin quelques infos, des réponses....
dans un <table> ? on peut donc utiliser
document.getElmentById("TableURL'").rows[n° de ligne].cells[n° de colonne].innerHTML
par exemple.
maintenant comment tu connais la ligne ?faut voir ton activeX.