Objet TDC activeX , recuperation valuer DATAFLD pour la placer dans une variable

hambis Messages postés 4 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 21 juin 2009 - 20 juin 2009 à 13:44
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Derniè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


~videolib/video1.mpg~@~text1~

~videolib/video2.mpg~@~text2~ <<== CHOIX ONCLICK JS_URL

~videolib/video3.mpg~@~text3~

....


~videolib/video20.mpg~@~text20~

Le but recherche est :


Lorsqu on click sur une ITEM de la liste affichée (Table TDC)

je lance une fonction Javascript pour générer

une chaine TEXTE formatée en XHTML

afin de LANCER un objet avec EMBED pour visualiser la video.


Cette chaine nécessite une VALEUR JS_URL venant

de la table contrôlée par l objet TDC précédent.


Dans l un de DATAFLD il contient en effet la valeur URL de l objet vidéo.


Exemple ...extrait de la chaine crée par la fonction Javascript :


<object ...>


txt+="MA QUESTION :

Comment récupérer la valeur DATAFLD de l article sélectionne par un CLICK

lors de l affichage de cette table par TDC ???

(pour la placer dans a variable JS_URL de l fonction Javascript)


MERCI D AVANCE POUR VOTRE AIDE


( je ne suis pas expert et j ai passe pas mal du temps pour cette question)

8 réponses

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 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 = "&nbsp;";
        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... .. .

@ tchaOo°

l'homme est un loup pour l'homme... .. .
0
hambis Messages postés 4 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 21 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---------------------->

~URLvideo~@~URLtext~
~videolib/video1.mpg~@~text1~
~videolib/video2.mpg~@~text2~                      <<----   onclick
~videolib/video3.mpg~@~text3~
..............................................
~videolib/video20.mpg~@~text20~

<!-------- 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 ????

</script>

<!--------------- objet TDC ------------------------------>

<object id = "objTDC"
 classid = "CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83">
 
 
 
 
 </object>

<!--------------------------------------------->

<!---   Entete de la table ----->

 
  ----

    URL video |
    URL coments |
  
 

 <!----- Ici l objet TDC affiche la table entier associe au ficher Listevideo.txt ----->
 

  

  

 

<!----------------------------------------------->
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 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>

@ tchaOo°

l'homme est un loup pour l'homme... .. .
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
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

Cordialement [mon Site] [M'écrire] Bul
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hambis Messages postés 4 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 21 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

     

 
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
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.
0
hambis Messages postés 4 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 21 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.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
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.
0
Rejoignez-nous