IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[Débutant][Jscript] Comment faire?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Ok ok!

    Pour ton xhr_object.responseXML.childNodes.length sa me renvoit un 0. et pour ton mini code ca renvoit cet objet ne gère pas cette action! ligne d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i in xhr_object.responseXML)
    Je te poste le html en entier afin que tu vois les autres fonction et c'est peut-être la qu'il est le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    <html>
    <head>
    <script language="jscript" type="text/javascript">
    	var gobjCurrentPartSelected = null;
     
    	/*--------------------------------------------------------------
    	function SelectPart
     
    	Changes the selection to the specified part (i.e. table row tag)
     
    	ARGUMENTS:
    		objPart		The table row to highlight.
    	RETURNS:
    		None
    	---------------------------------------------------------------*/
    	function SelectPart(objPart)
    	{
    		// Enable the Add Part button now that one of the parts is selected.
    		if (gobjCurrentPartSelected == null)
    			btnAddPart.disabled = false;
     
    		// If this is not the currently selected part, mark the new part as selected
    		// by switching it's CSS class.  Unselect the currently selected part, if any.
    		if (objPart != gobjCurrentPartSelected)
    		{
    			if (gobjCurrentPartSelected)
    				gobjCurrentPartSelected.className = "";
    			gobjCurrentPartSelected = objPart;
    			gobjCurrentPartSelected.className = "selected";
    		}
    	}
     
    	/*--------------------------------------------------------------
    	function AddPartToInvoice
     
    	Calls a business logic function to insert the part into the document.
     
    	ARGUMENTS:
    		objPart		The part object to insert.
    	RETURNS:
    		None
    	---------------------------------------------------------------*/
    	function AddPartToInvoice(objPart)
    	{
    		// Call the insertPartFromCatalog function in the business logic, passing
    		// the details for the part.
    		window.external.Window.XDocument.Extension.InsertPartFromCatalog(objPart.PartNumber, objPart.PartDescription, objPart.UnitCost);
    	}
    	function addtable()
    	{
    		var xhr_object = null;   
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");   
     
    		xhr_object.open("GET", "import.xml", true);   
     
    		 xhr_object.onreadystatechange = function() 
    		 {   
    			   if(xhr_object.readyState == 4)
    			   {    
    				var message = ""; 
    for(i in xhr_object.responseXML) 
        message += i+" "+xhr_object.responseXML[i]; 
    alert(message);
     
     
    			   alert(xhr_object.responsetext);
    			   alert(xhr_object.responseXML);
    			   alert(xhr_object.responseXML.documentElement);
    			   alert(xhr_object.responseXML.childNodes.length);
    					var trs = xhr_object.responseXML.getElementsByTagName('tr'); 
    					var l= trs.length ;
     
    					for(var j=0;j < l ; j++) 
    					{      
    						  document.getElementById("toto").appendChild(trs[j]);        
    					}
    				}
    		 }   
    		 xhr_object.send(null);   	
    	}</script>
    <style type="text/css">
    	body, table, td, th
    	{
    		font-family: Verdana;
    		font-size: 10pt;
    	}
    	table#partList
    	{
    		border-collapse:collapse;
    		word-wrap:break-word;
    		border-top: "1px #a9b6cb solid";
    		border-left: "1px #a9b6cb solid";
    		border-right: "1px #a9b6cb solid";
    	}
    	#partlist thead
    	{
    		text-align: left;
    		background-color:#7389af;
    		color: white;
    	}
    	#partList tr td, #partList tr th
    	{
    		border-bottom: "1px #a9b6cb solid";
    	}
    	table#partlist tr td, table#partlist tr th
    	{
    		padding: 1px 4px 1px 4px;
    	}
    	table#partlist tr.selected
    	{
    		background-color: #0000A0;
    		color: white;
    	}
    </style>
    </head>
    <body>
    	<table id="partList" cellspacing="0" width="100%">
    		<thead>
    			<tr>
    				<th width="10%">Item</th>
    				<th width="90%">Description</th>
    			</tr>
    		</thead>
    		<tbody xmlns="http://www.w3.org/1999/xhtml" id="toto">
    	</tbody>
    	</table>
    	<p style="text-align: center">
    		<button id="btnAddPart" onClick="AddPartToInvoice(gobjCurrentPartSelected)">Add To Invoice</button>
    		<button id="btnAddPart" onClick="addtable()">load</button>
    	</p>
    </body>
    </html>

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    hum, deja c est pas normal que responsetext passe
    faut un T,
    peut etre a cause de language = jscript ?
    mais le jscript je connais pas moi, doit y avoir des differences.

    Sinon, met ton onreadystatechange avant le open, ca sera mieux deja.

    Mais j'ai bien peur que ie ne reconnaisse pas ton xml comme du xml ...

    Faudrais peut etre plus passer par un xmlDom qui lui aura pas besoin d un header text/xml pour ie

    http://www.w3schools.com/dom/dom_parser.asp

  3. #3
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    peut etre a cause de language = jscript ?
    Ah ok car il y a une différence jscript et javascript ! Heureux de le savoir. Désolé pour ce genre de chose que je n'ai pas clairement signifié au départ (quoique je l'ai quand même mis dans le titre)! Java je ne connait quasiment pas d'ailleurs ca s'appelle toujours java mais y a 36 facon d'en faire!

    Moi en tout cas je doit faire ca en jscript car avec Microsoft office Infopath on ne peux pas utiliser que ca ou vbscript!

    un header text/xml
    C'est quoi ca peux pas en rajouter un ?
    Faudrais peut etre plus passer par un xmlDom
    mais je pourrais faire la même chose?

    Sinon connaitrais-tu un forum ou des tuto qu'il parle de jscript?

    Merci infiniment pour ta patience!

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    dans le lien que je t ai passé, tu as un exemple de chargement de xml avec xmlDom

    jscript est la version microsoftienne de javascript donc y a quelques petites différences.

    Ben le header, en fait c est les entete de la reponse http du serveur qui permettent au browser de savoir comment il doit interpreter cette meme reponse.

    Or la il semblerais que ie ne comprenne pas que c'est du xml.

    Apparement en passant par xmlDom, il ne se pose pas la question.

    Pour les ressources sur jscript a mon avis, rien ne vaut msdn

  5. #5
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Salut,

    dans le lien que je t ai passé, tu as un exemple de chargement de xml avec xmlDom
    le lien AJAX? j'ai pas vu... mais j'ai trouvé autre chose

    Quelquechose m'échappe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     alert(xhr_object.responsetext);
    			   var oXmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
    			   oXmlDoc.loadXML(xhr_object.responsetext);
    			   alert(oXmlDoc.xml);
    			   var trs= oXmlDoc.selectNodes('//tr');
    			   var l= trs.length;
    			   alert(l);
     
    					for(var j=0;j < l ; j++) 
    					{      
    						    alert('toto');
    						  alert(trs[j].xml);   
    						  document.getElementById("toto").appendChild(trs[j]);  
    					}
    J'arrive à récupérer le l qui est égal a 5 et le noeud mais a voir la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("toto").appendChild(trs[j]);
    fait l'erreur:
    cette interface n'est pas pris en charge
    Si je met trs[j].xml dans appendchild ca me fait une autre erreur:
    le type ne correspond pas
    Pourquoi et comment puis-je m'en sortir?

    Merci

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    essayes peut etre un insertRow pour l'ajouter

  7. #7
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Si je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document.getElementById("toto").insertRow(trs[j]);
    l'erreur est:
    Cet objet ne gère pas cette proprété ou cette méthode.
    Maintenant si je veux afficher le contenu de: document.getElementById("toto") si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementById("toto"));
    ca me renvoit: [object] puis-je voir l'intérieur.

    Je tiens a dire qu'a la base le noeud id="toto" est vide! Au cas ou ca pourrait posé des problèmes!

    Merci

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    met l'id toto sur la table pour voir et pas sur le tbody

  9. #9
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Non plus!

    Je sais pas si ca va marcher comme ca c'est assez bizzare car y fait des erreur quand on met appendchild:
    cette interface n'est pas pris en charge

    tantdis que insertrow renvoit:Cet objet ne gère pas cette proprété ou cette méthode.

    donc faut trouver un autre moyen d'insérer a mon avis? non?

    Au faite si j'essayais de prendre la valeur text avec les balises xml et que je l'ajoute à l'intérieur de mon toto ca pourrait pas marcher ca?

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    si c est e que je t avais dit au tout début, de faire un innerHTML

  11. #11
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("toto").innerhtml=xhr_object.responsetext;
    Mais ce que je comprend pas c'est que ca pas d'erreur et ca ne renvoit rien! C'est déclaré faux?

  12. #12
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    euh fais attention car tu as un tbody dans ton xml, donc si tu met l'id sur tbody, tu vas en avoir deux

  13. #13
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Salut,

    Voila après toute ces merdes entre jscript et javascript j'ai essayé de trouver une autre facon de faire ca toujours en jscript mais cette fois avec le modèle objet d'infopath.

    Le but était de générer chaque fois un tableau différent en fonction du champs ou je me trouvais.

    Et la franchement j'ai trouvé un truc génial, mais bon je sais pas vraiment si ca vaut la peine que je le post car c'est vraiment spécifique à ce programme?

    Un grand merci à toi car avec tous tes conseils j'ai pu concevoir ma nouvelle idée!

    Merci et a une prochaine

    Thierry

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/08/2007, 11h14
  2. Réponses: 7
    Dernier message: 16/03/2005, 12h35
  3. [Parser] [Débutant] Comment faire !
    Par enigma dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 23/02/2005, 01h57
  4. [Débutant] Comment faire un calendrier HTML
    Par le lynx dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/10/2004, 16h19
  5. [Débutant] Comment faire un import de package ?
    Par MASSAKA dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 07/05/2004, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo