Enregistrer un fichier HTML avec paramètre ?

Résolu
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014 - 3 août 2013 à 16:22
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014 - 9 août 2013 à 07:56
Bonjour,
Pour enregistrer une page, HTML et validez des paramètres. Comment faire sans faire appel à SaveAs de l'application IE Microsoft ? Faut-il le faire en PHP, en Ajax avec XMLRequest ou en Javascript ?

voir exemple pour l'étendue du problème

25 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 6/08/2013 à 21:24
Au temps pour moi...

Il faut utiliser "parent.frames['NOMDELAFRAME']"

Exemple ( code placé dans ma Frame 'Gauche'.. je vais chercher les infos dans ma frame 'droite' )
<script type="text/javascript">

function Mafonction2(){
//Affiche le contenu d'un INPUT
var fram=parent.frames['droite'];
var textInput = fram.document.getElementById('input1').value;
alert(textInput);
}

function Mafonction3(){
//Affiche le contenu d'un DIV
var fram=parent.frames['droite'];
var textDIV = fram.document.getElementById('div1').innerHTML;
alert(textDIV);
}

</script>


Et le code de la frame 'droite' pour que tu comprennes ce que je vais chercher.
<html>
<head><title> FRAME DROITE </title>
</head>
<body>
<input type="text" id="input1" value="10">
<div id="div1">
Ceci est dans un div
</div>
</body>
</html>


nb : ce qui marche pour le DIV fonctionnera avec ton "TITRE"
//<span id="titre" contenteditable="true">
//...

var fram=parent.frames['droite'];
var TITRE = fram.document.getElementById('titre').innerHTML
alert(TITRE);





Et aussi pour récupérer le "TITLE" d'une frame:
function afficheTitle(){
// Affiche le title de ma frame droite
var fram=parent.frames['droite'];
var MonTitle = fram.document.title;
alert(MonTitle);
} 



Voila, y'a plus qu'à...

Cordialement,
Jordane
____________________________________________
1
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 21:32
Au passage, jette un oeil à ce site...
http://actuel.fr.selfhtml.org/archives/docu/7.0/tec.htm
Tu y trouveras des choses intéressantes sur le js.
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
3 août 2013 à 20:01
Bonjour,
Plutot que de mettre un lien vers un site contenant tes multiples questions il est préférable de les poser ici.

Ensuite, tu veux saugarder une page internet que tu generes ?...il faut donc créer un fichier texte avec les éléments qui t'intéresse puis en modifier l'extension en .html.

En php tu as fwrite par exemple
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
3 août 2013 à 21:06
merci jordane45,
En fait, la page est comment dirai-je... flottante car les paramètres sont simplement dans une sorte d'Api javascript de html5 de type content editable. On peut changer les paramètres (police au choix par exemple) mais tout ça est virtuel ce n'est pas en dur dans le code html et css. mais juste dans la mémoire du navigateur.
c'est pourquoi je recherche une méthode pour d'une part pour avoir la possibilité de paramétrer mes objets Js mais aussi d'enregistrer mes pages sur le serveur

Je vais voir pour fwrite ce que ça donne et regarder si ça convient à la problèmatique...
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 01:50
Bonjour,
C'est marrant, je ne vois plus ma réponse précédente.......
Est-ce un bug ou une suppression de ta part ?


As-tu finis par trouver comment sauvegarder ta page comme tu le souhaitais ? Tu devais regarder du côte de Fwrite (en php) mais il existe des équivalents en javascript..
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 12:23
Mon commentaire précédent est de nouveau visible... pfff saletés de bugs
:-)
0

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

Posez votre question
@karamel Messages postés 1854 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 8 avril 2024 153
6 août 2013 à 11:36
bonjour a tu essayé avec innerHTML qui permet aussi de récupéré le contenu HTML d'un élément

var contenu=document.getElementById(mon_conteneur).innerHTML
alert(contenu)


--
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
6 août 2013 à 15:39
Bonjour,
Je m'explique, je ne veux pas que l'on fasse le site à ma place. Je suis juste dans une impasse après avoir épuisé mes exemples et les livres sur la matière. Et c'est dur...Kazma me donne une piste et après l'avoir exploité dans tous les sens, je suis au point de départ.

Qu'en pensez-vous ? en supposant que mon document est dans une frame ("droite") et que je dois voir apparaitre après un return dans mon champs texte une boite alert avec ma variable

function ChangeTexte(toto) {
var toto = document.frames("droite").getElementById("titre").innerHTML;
alert = (toto);

}

mais d'une part dans le document "titre" avec innerHTML rien n'apparait et la boite d'alert ne s'affiche pas


a) je ne comprends plus rien
b) je ne souhaite qu'une chose trouver la méthode pour d'une part validez toutes mes variables et les inscrire dans un fichier texte et ensuite utiliser xmlhttprequest en post pour les enregistrer dans une base de données, mais ça c'est une autre histoire

c) help !
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 16:41
essayes ceci :
var titre = window.frames['droite'].getElementById("titre").innerHTML;
alert(titre);

ou ça :
var frame = document.getElementById("droite");
var titre=frame.getElementById("titre").innerHTML;
alert(titre);

0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
6 août 2013 à 19:13

function ChangeTexte(titre) { 

var titre = window.frames('droite').getElementById("titre").innerHTML;

 alert(titre);	
		
}


ne fonctionne pas


et le reste, pas essayé. J'y vais de ce pas...
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 19:23
La variable titre que tu passes à ta fonction correspond a quoi ?

Ton element "titre" dans ta frame c'est quoi un input ?
Fait voir le code html de cet élément. ..


Si dans ta fonction tu mets uniquement
alert ("test");

Sans rien d'autre..est ce que ça s'affiche ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 19:25
Par contre ce sont des crochets apres frame...pas des parenthèses.
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
6 août 2013 à 21:29
Voici le code html avec le champ et le focus qui fait changer sa couleur

<input type="text" id="boite-texte1" value="Titre" 
onKeyUp="parent.frames[1].transtexte(this.value)" 
onFocus="SetBgtexte1('#C0C0C0');" 
onBlur="SetBgtexte1('white');"  
onKeyPress="return valid_mail(event);">



et le javascript

function transtexte(tutu) {
                document.getElementById("titre").innerHTML = tutu;	
		
}


et là ça fonctionne mais pas de variable et pas de possibilité d'enregistrer, voilà
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 6/08/2013 à 22:02
J'ai un doute sur ce que tu cherches à faire et comment....
- Déjà, pourquoi as-tu changé ton <SPAN TITRE par un INPUT ?
- Pourquoi ne testes tu pas les codes que je t'ai mis il y a quelques minutes ?


ça fonctionne mais pas de variable et pas de possibilité d'enregistrer
????
Pas de variables ? Ben si tu peux modifier ou lire le contenu d'un élément, tu peux aussi mettre ces données dans des variables...
Var maVariable = document.getElementById("titre").innerHTML ;


function transtexte(tutu) {
                document.getElementById("titre").innerHTML = tutu;			
}

La tu essayes de récupérer la valeur qui se trouve dans ton INPUT pour la réafficher dedans...heu... pourquoi ??? Et plus sérieusement, si tu regardes mes exemples, tu verras que pour un INPUT on n'utilise pas INNERHTML !!!
Il ne suffit pas de copier bêtement des bouts de codes trouvés au hasard des discussions..il faut essayer de comprendre leur fonctionnement et ne pas hésiter à regarder sur le net à quoi cela correspond......

Pas possibilité d'enregistrer... Ben pour l'instant on ne fait que répondre à ta question : Comment lire/écrire des données dans le titre de ta FRAME "droite"
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
6 août 2013 à 21:55
function transtexte(titi) {
var titre = document.getElementById("titre").innerHTML = titre;
alert(titi)	

Comme ça cela fonctionne et la valeur retournée dans la fenetre alert est bien "titi" dans le champ, il ne manque plus qu'un return au bon endroit

maintenant il faut que la valeur soit conservée pour une utilisation ultérieure pour être enregistrer, comment faire... ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 22:07
Règle du site : 1 question par discussion...

Là on a réglé la question de cette discussion.
Je t'invite donc à clôturer cette discussion ( la mettre en RESOLU ) puis d'ouvrir une nouvelle discussion sur le forum pour cette nouvelle question
-> ne pas oublier : Titre explicite, question énoncée clairement


Petite indice tout de même pour t'aider à avancer dans la résolution de cette nouvelle question :
=> Il ne faut pas nécessairement "stocker" cette valeur pour l'utiliser plus tard... il suffit d'aller la lire au moment où tu en as besoins.
Sinon tu peux la stocker dans un <Input type= "hidden" par exemple.
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 6/08/2013 à 22:11
heu par contre... tu fais n'importe quoi là

function transtexte(titi) {
var titre = document.getElementById("titre").innerHTML = titre;
alert(titi)


C'est quoi ton double "=" ????
variable = contenu = variable ???
En plus, LIS ce que je te marque !!!!!!!
INPUT => PAS DE INNERHTML !


en plus, ton code ne fait rien à part faire un "alert" de la variable que tu as passé en parametre de ta fonction..
Autant faire :
function transtexte(titi) {
alert(titi);
}
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
6 août 2013 à 22:39
Désolé plusieurs de nos messages ce sont mélanger sans que j'ai lu ce que tu me faisais remarquer, mille excuses pour cet incident.

je clos la discussion et la reprend dans un autre post. Pardonnes moi Jordanne pour mes lacunes
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 août 2013 à 22:50
Pas de soucis.
Par contre tu es sur que ce point est vraiment résolu ?
Montre ton code pour être sûr.
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
6 août 2013 à 23:54
Non je ne suis pas certain car il faut pouvoir lire la variable (avec ta solution input1 et div1 qui apporte beaucoup d'eau à mon moulin) et par ailleurs afficher avec innerHTML la modification

je reprendrai demain
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par ichiriac le 8/08/2013 à 16:53
Re,

[ Prends bien le soin de lire mon message jusqu'au bout ]


il faut pouvoir lire la variable (avec ta solution input1 et div1 qui apporte beaucoup d'eau à mon moulin) et par ailleurs afficher avec innerHTML la modification

Tu peux lire ET écrire avec les propriétés des éléments.
Ceux qui, comme les INPUT, ont une propriété "VALUE" se manipuleront en utilisant la syntaxe dy type element.value

D'autres, comme les DIV, SPAN, TD / TH.. (tableau html) utiliseronts innerHTML


Bref, comme dans énormément de langages de programmation, l'écriture d'une variable et sa lecture se font de la manière suivante :
MaVariable = "xxx" | Je met "xxx" dans MaVariable
MonInput.value = "ZZZ" | Je met "ZZZ" dans MonInput
MonInput.value = MaVariable | Je met le contenu de MaVariable dans MonInput
MonDiv.innerHTML = MonInput.value ... je te laisse deviner...
| Je met le contenu de MonInput dans mon DIV

Etc..


Donc, afin que l'on puisse avancer dans la résolution de tes différentes questions, pour que tu comprennes les bases du javascript... et surtout que tu comprenne bien comment lire et écrire dans un document HTML via le Javascript..., je t'invite très fortement à essayer puis étudier le code que je t'ai mis ci-dessous.

<html>
<head>
<title> EXEMPLE Javascript</title>
</head>
<body>
Exemple 1 : Lire le contenu d'un Element de type : INPUT
<br>
<input type="text" name="mon_Input" id="input1" value="Ecrire quelque chose ici">
<br>
<input type="button" onclick="test1();" value="test1" >
<br>
<br>
Exemple 2 : lire  un inut Hidden et afficher dans un DIV
hidden => masqué
<br>
<input type="hidden" name="mon_Input_hidden" id="hidden1" value="Blabla blabla">
<div id="div1">
</div>
<br>
<input type="button" onclick="test2();" value="test2" >
<br>
<br>
Exemple 3 : Lecture d'un SPAN, Ecriture dans un Hidden + Alert <br>
<span id="span1"> Ceci est un exemple </span> <br>
<input type="hidden" name="mon_Input_hidden" id="hidden2" value="">
<br>
<br>
<input type="button" onclick="test3();" value="test3" >
<br>
<p>
Exemple 4 : Lecture plusieurs éléments d'un Form
<form id="form1">
<input type="hidden"  id="hidden1" value="mon text de hidden1">
<input type="hidden"  id="hidden2" value="mon text de hidden2">
<input type="text"  id="input1" value="Ecrire quelque chose ici">
<input type="text"  id="input1" value="Et puis encore quelque chose à écrire la....">
<Select id="sel1">
<option value=1> Choix 1 </option>
<option value=2> Choix 2 </option>
</select>
<input type="button" id="monJoliBouton" onclick="test4(this);" value="test4" >
</form>
<br>
<div id="Elements_FORM">
</div>
</p>
</body>
</html>


<script type="text/javascript">
function test1(){
//lecture du contenu de mon input
// on recupère sa propriété VALUE
var toto=document.getElementById('input1');
var valeurDeToto = toto.value;
// Affichage
alert(valeurDeToto);
}

function test2(){
//lecture du hidden
var myHid=document.getElementById('hidden1');
var valeurDeMyHid = myHid.value;
//ecriture dans le div
var MonDiv=document.getElementById('div1');
MonDiv.innerHTML = valeurDeMyHid;
}


function test3(){
//lecture du SPAN
var MonSPAN=document.getElementById('span1');
var valeurMonSPAN = MonSPAN.innerHTML;
//ecriture dans le Hidden + affichage (alert)
var myHid=document.getElementById('hidden2');
myHid.value = valeurMonSPAN;
alert(myHid.value);
}

function test4(elemt){
// On recupere le <FORM> ou se trouve le bouton
var form = elemt.form;
alert("ID du FORM : " + form.id);
//on récupère tous les éléments du FORM
var El = form.elements;
// on regarde combien il y en a :
var NbElm = El.length;
//On boucle sur chacun:
for(var i=0;i<NbElm;i++){
 document.getElementById('Elements_FORM').innerHTML +=El[i].id + " : " + El[i].value +'<br>';
}

}
</script>


Suite à ça, je t'invite à valider tes connaissances par un petit exercice tout simple :
>>propose nous :
une petite fonction qui :
- Lit le contenu d'un input text
- Stocke le résultat dans un Hidden
puis une deuxième fonction qui :
- Lira le HIDDEN
- Affichera le résultat dans un DIV
( Il faudra donc deux boutons...)

=> De cette façon tu sauras comment lire le contenu d'éléments HTML et les stocker quelque part pour pouvoir les réutiliser après....


Cordialement,
Jordane
____________________________________________
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
7 août 2013 à 09:54
Laisses-moi un petit peu de temps pour potassez tout ça et je reviens un peu plus tard
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
7 août 2013 à 11:06
Pas de soucis.
Pense à regarder ces sites :

- http://www.validome.org/doc/HTML_fr/javascript/objets/index.htm
- http://www.gchagnon.fr/cours/dhtml/

Tu y trouveras de bonnes explications.
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
7 août 2013 à 19:16

<!DOCTYPE html>
<html lang="fr">

<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />


<script type="text/javascript">

function trouvevariable() {
	var toto=document.getElementById('input1');
	var ValeurDeToto = toto.innerHTML;
alert(toto.value)
}

function affichehidden() {
	var toto=document.getElementById('input1');
	var ValeurDeMyHid = toto.value;
	var ValeurDeToto = document.getElementById('div1');
	ValeurDeToto.innerHTML = ValeurDeMyHid;
}
</script>
</head>

<body>

<input type="text" name="mon_Input" id="input1" value="toto">
<br>
<br>
<input type="button" onclick="trouvevariable();" value="Trouve variable" >
<br>
<br>
<input type="button" onclick="affichehidden();" value="Affiche Hidden" >
<br>
<br>
<input type="hidden" name="mon_Champ_cache" id="input1" value="bla-bla">
<div id="div1">

</body>

</html>


Voilà après une heure de travail (je n'ai pas fait que ça depuis hier) j'ai réussi la première épreuve et c'est un jeu passionnant.

Trèves de plaisanterie, je crois avoir bien compris le principe, en tout cas, pour l'instant je respecte le cahier des charges et je pense pouvoir clore cette page avec un Résolu mais ce n'est qu'un début. Merci Jordanne45 pour tes conseils...

0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 7/08/2013 à 20:21
Ta première fonction est fausse...
Tes id des input sont identiques ..donc ce n'est pas bon
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
7 août 2013 à 21:06
je ne vois pas où j'ai fais l'erreur

les id ? : input1 ?

des inputs : var toto et toto.innerHTML


si je modifie les deux inputs ça ne marche plus ?

Je divague ou pas ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
8 août 2013 à 00:03
Je divague ou pas ?
Non, tu ne divagues pas.... mais tu ne comprends pas vraiment ce que tu fais...


pour t'aider à comprendre répond aux questions suivantes en te basant sur mes précédents messages ainsi que sur les sites que je t'ai proposé....

- Comment lit-on la valeur d'un INPUT ?
- A quoi sert "innerHTML" ? Dans quels cas peux-tu l'utiliser ?
- Que permet de faire l'instruction : getElementById
- Dans ta fonction : trouvevariable() , à quoi sert ta ligne
"var ValeurDeToto = toto.innerHTML;" ?
- Selon toi, que se passe t'il si je donne le même ID à plusieurs éléments d'un même document ?

En complément :
- Comment lit-on la valeur d'un SELECT ?
- Comment lit-on la valeur d'une cellule d'un tableau HTML ?
- Que représente "this" dans l'instruction : onclick="alert(this.value)";
- Que fait la méthode : getElementsByTagName() ?
[merci de ne pas copier/coller les éventuelles définitions que tu trouveras sur le net, mais reformule avec tes propres mots....]



NB: Pense qu'en DEV, on essaye d'utiliser des noms de variables "parlants".
Toto n'en est pas un...



Si tu ne réponds pas correctement à toutes ces questions, je pense que tu devra attendre avant de te lancer dans ton DEV et prendre le temps d'apprendre, de te documenter et de réfléchir à ce que tu souhaites programmer.

Sans vouloir te vexer, pour l'instant tu ne fais que du copier/coller de lignes de code que tu trouves sur les forum sans en comprendre le fonctionnement...
Si tu veux progresser et devenir programmeur, il va vraiment falloir faire attention à ce que tu écris comme code et surtout à le tester...
Imagines les personnes qui viendraient sur ton site et qui, par malchance rencontreraient un tas de bugs à cause d'un développement hasardeux...ça donnerai une mauvaise image de toi et de ton travail surtout que les gens qui se plaignent sont toujours plus écoutés que ceux qui apprécient....

Un webmaster curieux de beaucoup de choses

Attend peut-être encore un peu avant de te proclamer webmaster petit padawan, le chemin est long et parsemé d'obstacles
:-)

0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
8 août 2013 à 00:57
J'en suis carrement au niveau zero avec l'exercice que tu as corrigé. j'ai essayé de comprendre mes erreurs et voici le code que j'ai pondu mais ça ne fonctionne pas

function trouvevariable() {
	var champcontenu = document.getElementById('champ1');
	var recupvaleur = champcontenu.value;
	var valeurchamp = document.getElementById('hidden');
	monchampcache.innerHTML = recupvaleur;

alert(recupvaleur.value);


function affichehidden() {
	var recupvaleur=document.getElementById('input1');
	var ValeurDeMyHid = recupvaleur.value;
	var ValeurDeToto = document.getElementById('div1');
	ValeurDeToto.innerHTML = ValeurDeMyHid;
}
}



Je vais tenter de répondre à tes questions et je crois en fait c'est en particulier un problème de vocabulaire


"pour t'aider à comprendre répond aux questions suivantes en te basant sur mes précédents messages ainsi que sur les sites que je t'ai proposé...."

- Comment lit-on la valeur d'un INPUT ?
avec une variable

- A quoi sert "innerHTML" ? Dans quels cas peux-tu l'utiliser ?

quand on veut insérer des élémemts HTML dans le corps d'un document

- Que permet de faire l'instruction : getElementById

de donner un attribut ou une valeur à un id css

- Dans ta fonction : trouvevariable() , à quoi sert ta ligne
"var ValeurDeToto = toto.innerHTML;" ?

à rien

- Selon toi, que se passe t'il si je donne le même ID à plusieurs éléments d'un même document ?

Le capharnamum très vite, redondance et compagnie


En complément :
- Comment lit-on la valeur d'un SELECT ?

ne sais pas, mais tu l'as donné en exemple

- Comment lit-on la valeur d'une cellule d'un tableau HTML ?
avec this.value

- Que représente "this" dans l'instruction : onclick="alert(this.value)";
- Que fait la méthode : getElementsByTagName() ?
elle permet de paramétrer des balises au lieu des id de css comme getElementById



Je reprendrai demain après midi j'ai des impératifs auxquels je ne peux me soustraire, à demain
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 8/08/2013 à 03:02
Bon corrigeons...

1) LES QUESTIONS :
- Comment lit-on la valeur d'un INPUT ?
avec une variable => Non, une variable tu y stocke une valeur... la réponse est : en utilisant sa propriété "VALUE"

- A quoi sert "innerHTML" ? Dans quels cas peux-tu l'utiliser ?
quand on veut insérer des élémemts HTML dans le corps d'un document
=> Oui, mais aussi pour lire ce contenu HTML. Comme exemple tu peux lire ou écrire le contenu d'un DIV mais pas d'un input..(vu qu'un input, on utilise sa propriété........ VALUE)

- Que permet de faire l'instruction : getElementById
de donner un attribut ou une valeur à un id css
=> De pouvoir récupérer un objet (un élément du document si tu préfères) grâce à son id.
Exemples : <div id="xx" / <input id="zzz" ./ <table id="montableau> .... .etc

- Dans ta fonction : trouvevariable() , à quoi sert ta ligne
"var ValeurDeToto = toto.innerHTML;" ?
à rien : BONNE REPONSE

- Selon toi, que se passe t'il si je donne le même ID à plusieurs éléments d'un même document ?
Le capharnamum très vite, redondance et compagnie
=> Oui mais c'est par ce que..... (voir la réponse concernant GetElementById )


En complément :
- Comment lit-on la valeur d'un SELECT ?
ne sais pas, mais tu l'as donné en exemple
=> J'avais aussi donné des liens à regarder....
Mais bon, un select dispose d'une propriété VALUE

- Comment lit-on la valeur d'une cellule d'un tableau HTML ?
avec this.value
=> ( this retourne l'objet en cours, lors du onclick par exemple.. , donc si tu ne mets pas d'évènement sur ta cellule, tu ne peux pas utiliser this. De plus, les <td> n'ont pas de propriété value.. )
La réponse est donc : avec innerHTML



2) le code :

Attention, tu n'as pas mis les accolades où il fallait.
ta première fonction se termine sous le seconde.....ce n'est pas bon.

ensuite :
function trouvevariable() {
 var champcontenu = document.getElementById('champ1');
 var recupvaleur = champcontenu.value;
 var valeurchamp = document.getElementById('hidden');
 monchampcache.innerHTML = recupvaleur;
 alert(recupvaleur.value);

} // l'accolade doit être là


monchampcache.innerHTML : monchampcache, tu lui indique où à quoi correspond cette variable (tu as du oublier de remplacer : valeurchamp ) ?

Ensuite, ton 'hidden' est un INPUT. donc on lit et écrit sa valeur avec la propriété VALUE

Et à la fin, ton "alert(recupvaleur.value); .... recupvaleur est déjà le "value" de "champcontenu" .. pas besoin de lui remettre".value" ...


CORRECTION DU CODE
function trouvevariable() {
 var ChampContenu = document.getElementById('champ1');
 var Valeurchamp = ChampContenu .value;
 var ChampHidden= document.getElementById('hidden');
 ChampHidden.value = Valeurchamp ;
 alert(Valeurchamp );

}

// On peut aussi 'abréger' un peu
// Perso, je te conseillerai de garder l'écriture "détaillée" comme tu l'as fait
// Mais ce n'est qu'à titre d'exemple
function exemple1() {
document.getElementById('hidden').value = document.getElementById('champ1').value;
alert(document.getElementById('hidden').value);
}



Cordialement,
Jordane
____________________________________________
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
8 août 2013 à 15:44
function trouvevariable() {
// on lit la valeur MaValeur
	var ValeurTrouve=document.getElementById('champ1');
//on la stocke
	var MaValeur = ValeurTrouve.value;
//on la place dans un champ caché
	var ValeurTrouve = document.getElementById('hidden1');
var valeurChamp = Mavaleur.value;

alert(MaValeur);
}

function affichehidden() {
	var MaValeur = document.getElementById('champ2');
	var ValeurMyHid = MyHid.innerHTML;
	var MyHid = document.getElementById('div1');
	MyHid.value = ValeurMyHid;
	
}


La première fonction affiche la valeur dans la boite d'alert mais je n'arrive pas à faire marcher la seconde. Dois-je déclarer à nouveau dans la fonction : la lecture, le stockage, puis le placement dans un champ hidden puis la relecture dans le div1 id ? Tout ça pour la même fonction ?

Auparavant j'avais mis deux accolades car je pensais à une fonction entière pour les deux boutons
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
8 août 2013 à 15:46
Je compare la correction avec le code et j'essaye de comprendre où sont mes erreurs
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
8 août 2013 à 16:21
function trouvevariable() {
	var ValeurTrouve = document.getElementById('champ1');
	var Valeurchamp = ValeurTrouve.value;
	var MaValeurTrouve = document.getElementById('hidden');
	MaValeurTrouve.value = Valeurchamp;

alert(Valeurchamp);
}


function affichehidden() {
	var Valeurchamp = document.getElementById('hidden');
	var ValeurDeMyHid = Valeurchamp.value;
	var ValeurDeToto = document.getElementById('div1');
	ValeurDeToto.innerHTML = ValeurDeMyHid;
}



J'ai trouver ceci pour la première fonction en fait je crois que ce que j'avais fait ne marchait pas en tout cas pas un code identique au tien. Voici la fonction 1 et 2 complète mais j'ai repris le id hidden à chaque fois est ce une erreur et y a t-il éventuellement un soucis de redondance ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 8/08/2013 à 16:40
je crois que ce que j'avais fait ne marchait pas

Oui c'est sur.. d'où mes corrections....

Mais cette fois ça à l'air OK.

j'ai repris le id hidden à chaque fois est ce une erreur et y a t-il éventuellement un soucis de redondance
C'est normal... Dans ta première fonction tu stock une information dans ton input HIDDEN... dans la deuxième tu viens lire cette valeur...
Si tu avais utilisé un ID différent dans chaque fonction, ça n'aurait pas fonctionné.....puisque tu n'aurais pointé sur le même objet.. logique quoi.


Petit rappel :
- Dans mon document HTML : Je m'efforce de donner des ID différents à chacun de mes éléments.
( un id.. c'est un identifiant, de préférence "unique" ... Imagine que dans ton téléphone TOUS tes contacts aient le même nom... pour retrouver celui que tu veux appeler.. bon courage.. ^^)

- Dans mes fonctions javascript, je peux être amené à Manipuler une ou plusieurs fois mes différents éléments (objets) HTML...
( Dans mon téléphone, je choisi un des mes contacts.. je peux alors aller lire son nom / Prénom / N° de téléphone, Lui envoyer des SMS ou l'appeler...)


Cordialement,
Jordane
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
8 août 2013 à 18:33
L'allegresse d'avoir progresser (un petit pe) m'a donné des ailes pour adapter les deux exemples sur le blog demo. J'ai rassemblé les deux fonctions pour n'en faire qu'une avec un seul bouton.

Voici le code :


function transtexte() {
		var ValeurTrouve = document.getElementById('champ1');
		var Valeurchamp = ValeurTrouve.value;
		var MaValeurTrouve = document.getElementById('hidden');
		MaValeurTrouve.value = Valeurchamp;

		var Valeurchamp = document.getElementById('hidden');
		var ValeurDeMyHid = Valeurchamp.value;
		var fram = parent.frames['droite'];
		var ValeurDeToto = fram.document.getElementById('div3').innerHTML;  

}


Mais petit soucis, c'est une page de frame (gauche et droite) si je le fait sur une page ça fonctionne, sur deux, non. Pourtant j'ai respecté les crochets et j'ai essayé en déclarant la frame droite mais ça ne marche pas, pourtant mon id div3 est bien sur la frame de droite. aie

0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 8/08/2013 à 18:54
function transtexte() {
var ValeurTrouve = document.getElementById('champ1');
var Valeurchamp = ValeurTrouve.value;
var MaValeurTrouve = document.getElementById('hidden');
MaValeurTrouve.value = Valeurchamp;
var Valeurchamp = document.getElementById('hidden');
var ValeurDeMyHid = Valeurchamp.value;
var fram = parent.frames['droite'];
var ValeurDeToto = fram.document.getElementById('div3').innerHTML;  

}



Attention,
Tu utilises Valeurchamp deux fois...
-Une pour lui assigneer le contenu de ton champ1
-L'autre comme "objet" 'hidden'

Que veux tu faire avec cette instruction ?
var ValeurDeToto = fram.document.getElementById('div3').innerHTML;  


Si c'est mettre le contenu de ton DIV dans la variable ValeurDeToto c'est bon, par contre si c'est pour afficher une valeur dans ton DIV... NON... tu l'as écrit à l'envers...



Par contre, pour que ton code reste bien lisible et facilement compréhensible, Penses à utiliser des Noms de variables "intelligents"
Pas de TOTO...
Si tu mets : ValeurChamp.. tu lui mets une valeur pas un objet...
(en général on préfix les éléments ou les objets par "Obj"
Exemple:


var Objchamp1= document.getElementById('champ1');
var Valeurchamp1 = Objchamp1.value;
var ObjMyHid= document.getElementById('hidden');
var ValeurDeMyHid = ObjMyHid.value;
// etc....
// Pour tester que ton code fonctionne, tu peux, 
//le temps des tests, y mettre des "alert()"
var Objfram = parent.frames['droite'];
alert("NAME : " + Objfram .name + "  ID: " + Objfram .id);

var ValDIV3= Objfram .document.getElementById('div3').innerHTML; 
alert(ValDIV3);


Au cas où, postes le code qui correspond à tes éléments HTML
exemple:
<div id='div3' >... </div>
<!-- etc ... -->



Pour info : Penses à installer FireBug ( c'est un plugin Firefox ) qui te permettra de voir rapidement d'éventuelles erreurs lors de l'éxécution de tes fonctions ( ce qui implique que tu devras tester ton site avec Firefox plutôt qu'IE ).
[Il existe un outil similaire sur IE, mais je le trouve moins pratique à utiliser.... ]

=>>
http://www.siteduzero.com/informatique/tutoriels/firebug-une-merveille-de-plus-pour-firefox


Cordialement,
Jordane
0
blog-machine Messages postés 114 Date d'inscription samedi 27 juillet 2013 Statut Membre Dernière intervention 7 mai 2014
8 août 2013 à 19:22
function transtexte() {
		
		var ValeurTrouve = document.getElementById('champ1');
		var Valeurchamp = ValeurTrouve.value;
		var MaValeurTrouve = document.getElementById('hidden');
		MaValeurTrouve.value = Valeurchamp;

		var champhidden = document.getElementById('hidden');
		var ValeurDeMyHid = champhidden.value;
		document.getElementById('div3').innerHTML = ValeurDeMyHid;  
}


<div id="div3"></div>


ça devrait être mieux comme ça, j'écrivait à l'envers la fonction => pour afficher dans l'id de la div3.Pour les frames, je cogite. Je place aussi des alert un peu partout pour voir aussi où j'en suis. Pour les noms des variables je vais m'améliorer. Je vais m'occuper de firebug
0
Rejoignez-nous