Prebleme : javascript et variable
Résolu/Fermé11 réponses
Archeus01
Messages postés
1571
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2022
450
22 juil. 2009 à 15:57
22 juil. 2009 à 15:57
Bonjour,
Tiens, à mon avis, ça devrait te suffire. J'ai commenté pour que tu comprennes mieux.
Le fichier sera accessible à l'adresse suivante: http://dl.free.fr/getfile.pl?file=/bBTym7aj
Ps: à chaque fois qu'une frame est créée, un chaton meurt quelquepart alors arrête...
(cf kitty dies, buzz du passé sur le net...)
Tiens, à mon avis, ça devrait te suffire. J'ai commenté pour que tu comprennes mieux.
Le fichier sera accessible à l'adresse suivante: http://dl.free.fr/getfile.pl?file=/bBTym7aj
Ps: à chaque fois qu'une frame est créée, un chaton meurt quelquepart alors arrête...
(cf kitty dies, buzz du passé sur le net...)
Archeus01
Messages postés
1571
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2022
450
16 juil. 2009 à 11:38
16 juil. 2009 à 11:38
var page='enf'+i;
des simple guillemet avec en dessous des doubles guillements avec des antislashs au lieu d'utiliser de simple guillemet...
Pourquoi la valeur de name n'est pas entre guillemet? Avec ça marcherait sans doute mieux. pourquoi mettre un plus entre du texte saisi et du texte saisi?
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire" type="text" size="15" maxlength="8"> €';
Enfin, utilisateur non enregistre est surement = ce que j'écris ne sera jamais lu par la personne concernée...
des simple guillemet avec en dessous des doubles guillements avec des antislashs au lieu d'utiliser de simple guillemet...
Pourquoi la valeur de name n'est pas entre guillemet? Avec ça marcherait sans doute mieux. pourquoi mettre un plus entre du texte saisi et du texte saisi?
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire" type="text" size="15" maxlength="8"> €';
Enfin, utilisateur non enregistre est surement = ce que j'écris ne sera jamais lu par la personne concernée...
Peut etre pas enregisré mais bien content d avoir une reponse !
les simples guillemets puis les doubles -> copié collé d autres solutions trouvées sur le net
Le mieux c est de ne mettre qu'un seul type de guillemets, non ?
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire" type="text" size="15" maxlength="8"> €';
je n'avais pas mis de "" sur le name car je desirerai avoir un nom en fonction du numero de l enfant si je peux m exprimer ainsi : salaire1, salaire2... en fonction du nombre d enfant "i". Et il me semble que pour concaténer deux chaines de caracteres avec ce "i" au milieu, il fallait faire comme ca ..??
Merci de ta réponse en tout cas
les simples guillemets puis les doubles -> copié collé d autres solutions trouvées sur le net
Le mieux c est de ne mettre qu'un seul type de guillemets, non ?
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire" type="text" size="15" maxlength="8"> €';
je n'avais pas mis de "" sur le name car je desirerai avoir un nom en fonction du numero de l enfant si je peux m exprimer ainsi : salaire1, salaire2... en fonction du nombre d enfant "i". Et il me semble que pour concaténer deux chaines de caracteres avec ce "i" au milieu, il fallait faire comme ca ..??
Merci de ta réponse en tout cas
Archeus01
Messages postés
1571
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2022
450
16 juil. 2009 à 14:26
16 juil. 2009 à 14:26
Re
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> €';
Voila pour avoir un name dépendant du i tout en respectant les règles de l'html qui demande que la valeur du name soit entouré de guillemet.
Le mieux c est de ne mettre qu'un seul type de guillemets, non ? -> Souvent le simple guillemet suffit quand le code est propre. Mais si on peut utiliser les deux types de guillemets pour éviter des \, c'est mieux.
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> €';
Voila pour avoir un name dépendant du i tout en respectant les règles de l'html qui demande que la valeur du name soit entouré de guillemet.
Le mieux c est de ne mettre qu'un seul type de guillemets, non ? -> Souvent le simple guillemet suffit quand le code est propre. Mais si on peut utiliser les deux types de guillemets pour éviter des \, c'est mieux.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re,
j'ai incrusté ta ligne sauf qu'IE n'en veux pas.. lol Il attend un " ; " qui ne vient jamais, je crains que ce soit a cause des guillemets simple et double; dsl je n'ai que le debugger IE 6 la ou je suis . :(
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire'+i'" type="text" size="15" maxlength="8"> €';
j ai enlevé le + a droite du i qui ne servait plus a rien
j'ai incrusté ta ligne sauf qu'IE n'en veux pas.. lol Il attend un " ; " qui ne vient jamais, je crains que ce soit a cause des guillemets simple et double; dsl je n'ai que le debugger IE 6 la ou je suis . :(
document.getElementById(page).innerHTML='Revenu de l'enfant '+i+' : <input name="salaire'+i'" type="text" size="15" maxlength="8"> €';
j ai enlevé le + a droite du i qui ne servait plus a rien
Desesperé je m'auto-up...
ma fonction de création des lignes de formulaire au chargement de la page :
function Chargement(){
for(var i=1;i<=nb;i++){
var page='enf'+i;
document.getElementById(page).innerHTML='Enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> € ';
}
}
Puis, vient la fonction qui est censée récuperer les variables salaire1/2/3/... puis renvoyer le resultat dans une autre frame , cependant, impossible de récuperer mes valeurs ... :( !
function valide(){
var totrev=0;
for(var i=1;i<=nb;i++){
var page='enf'+i;
totrev+=(document.getElementById(page).salaire'+i+');
}
alert(totrev);
window.parent.menu.revenf=document.formenf.totrev;
}
ma fonction de création des lignes de formulaire au chargement de la page :
function Chargement(){
for(var i=1;i<=nb;i++){
var page='enf'+i;
document.getElementById(page).innerHTML='Enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> € ';
}
}
Puis, vient la fonction qui est censée récuperer les variables salaire1/2/3/... puis renvoyer le resultat dans une autre frame , cependant, impossible de récuperer mes valeurs ... :( !
function valide(){
var totrev=0;
for(var i=1;i<=nb;i++){
var page='enf'+i;
totrev+=(document.getElementById(page).salaire'+i+');
}
alert(totrev);
window.parent.menu.revenf=document.formenf.totrev;
}
Archeus01
Messages postés
1571
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2022
450
20 juil. 2009 à 13:41
20 juil. 2009 à 13:41
est-ce que tu peux coller le bout de code html concernant les input de la première fonction pour savoir si ils sont bien écrits?
voir donner l'adresse ou on peut trouver la page, ça peut aider aussi.
voir donner l'adresse ou on peut trouver la page, ça peut aider aussi.
Les input de la premiere fonction ..?
je pense que tu parles de celle la :
function Chargement(){
for(var i=1;i<=nb;i++){
var page='enf'+i;
document.getElementById(page).innerHTML='Enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> € Statut :<input type="radio" name="coeffenf'+i+'" value="100" > Salarié <input type="radio" name="coeffenf'+i+'" value="70" >autres';
}
}
mais autant remettre tout le code :
<html>
<head>
<script type="text/javascript">
<!--
var page;
var revenfant;
var nb=window.parent.menu.nbenf;
salaireenfant = new Array();
coeffenfant = new Array();
function Chargement(){
for(var i=1;i<=nb;i++){
var page='enf'+i;
document.getElementById(page).innerHTML='Enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> € Statut :<input type="radio" name="coeffenf'+i+'" value="100" > Salarié <input type="radio" name="coeffenf'+i+'" value="70" >autres';
}
}
function valide(){
var totrev=0;
for(var i=1;i<=nb;i++){
var revenfant='salaire'+i;
var page='enf'+i;
//alert(document.getElementById(page).revenfant);
// totrev+=parseInt(document.getElementById(page).revenfant.value);
// totrev+=parseInt('enf'+i.revenfant);
}
//alert(totrev);
//window.parent.menu.revenf=document.formenf.totrev;
//parent.corps.location.href="recap.html";
}
//-->
</script>
</head>
<body onLoad="Chargement();" >
<form name="formenf">
<p>Ressources de vos enfants au cours des 12 derniers mois :</p>
<div id="enf1">
</div>
<div id="enf2">
</div>
<div id="enf3">
</div>
<div id="enf4">
</div>
<div id="enf5">
</div>
<div id="enf6">
</div>
<div id="enf7">
</div>
<div id="enf8">
</div>
<div id="enf9">
</div>
<div id="enf10">
</div>
<div id="enf11">
</div>
<div id="enf12">
</div>
<br><br>
<input type="button" onClick="valide()" value="Valider">
<FORM Name="back">
<Input type=button value="précédent" onclick="history.back();">
</FORM>
</form>
</body>
</html>
je n essaie de recuperer pour l'instant que les salaires, mais mon probleme et sa solution seront les memes pour les radio ensuite :)
merci de t'interesser a mon cas
je pense que tu parles de celle la :
function Chargement(){
for(var i=1;i<=nb;i++){
var page='enf'+i;
document.getElementById(page).innerHTML='Enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> € Statut :<input type="radio" name="coeffenf'+i+'" value="100" > Salarié <input type="radio" name="coeffenf'+i+'" value="70" >autres';
}
}
mais autant remettre tout le code :
<html>
<head>
<script type="text/javascript">
<!--
var page;
var revenfant;
var nb=window.parent.menu.nbenf;
salaireenfant = new Array();
coeffenfant = new Array();
function Chargement(){
for(var i=1;i<=nb;i++){
var page='enf'+i;
document.getElementById(page).innerHTML='Enfant '+i+' : <input name="salaire'+i+'" type="text" size="15" maxlength="8"> € Statut :<input type="radio" name="coeffenf'+i+'" value="100" > Salarié <input type="radio" name="coeffenf'+i+'" value="70" >autres';
}
}
function valide(){
var totrev=0;
for(var i=1;i<=nb;i++){
var revenfant='salaire'+i;
var page='enf'+i;
//alert(document.getElementById(page).revenfant);
// totrev+=parseInt(document.getElementById(page).revenfant.value);
// totrev+=parseInt('enf'+i.revenfant);
}
//alert(totrev);
//window.parent.menu.revenf=document.formenf.totrev;
//parent.corps.location.href="recap.html";
}
//-->
</script>
</head>
<body onLoad="Chargement();" >
<form name="formenf">
<p>Ressources de vos enfants au cours des 12 derniers mois :</p>
<div id="enf1">
</div>
<div id="enf2">
</div>
<div id="enf3">
</div>
<div id="enf4">
</div>
<div id="enf5">
</div>
<div id="enf6">
</div>
<div id="enf7">
</div>
<div id="enf8">
</div>
<div id="enf9">
</div>
<div id="enf10">
</div>
<div id="enf11">
</div>
<div id="enf12">
</div>
<br><br>
<input type="button" onClick="valide()" value="Valider">
<FORM Name="back">
<Input type=button value="précédent" onclick="history.back();">
</FORM>
</form>
</body>
</html>
je n essaie de recuperer pour l'instant que les salaires, mais mon probleme et sa solution seront les memes pour les radio ensuite :)
merci de t'interesser a mon cas
Archeus01
Messages postés
1571
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2022
450
21 juil. 2009 à 16:16
21 juil. 2009 à 16:16
J'ai toujours pas bien compris ce que tu veux faire
Le fichier sera accessible à l'adresse suivante: http://dl.free.fr/getfile.pl?file=/T1atmETU
Moi ce que je vois ce j'ai uppé ça passe d'une frame dans l'autre.
Explique plus en détail ce que tu veux si tu veux plus d'aide. A la limlite, up ce que tu as (protège par un mdp si tu veux que ce soit confidentiel que tu m'envois par MP) et explique ce qui marche pas.
Le fichier sera accessible à l'adresse suivante: http://dl.free.fr/getfile.pl?file=/T1atmETU
Moi ce que je vois ce j'ai uppé ça passe d'une frame dans l'autre.
Explique plus en détail ce que tu veux si tu veux plus d'aide. A la limlite, up ce que tu as (protège par un mdp si tu veux que ce soit confidentiel que tu m'envois par MP) et explique ce qui marche pas.
Bonjour,
je ne t'ai pas envoyé de mp car je en suis pas inscrit (honte sur moi :P)
je vais essayer de t'expliquer ce que je cherche a faire mais je pense que tu as malgre toi compri car ton code résoud quasiment mon soucis:
j'ai repris ton fichier et travaillé dans celui ci pour que ce soit plus simple.
- Je veux creer "dynamiquement" les lignes ou l'on entre le salaire et choisi la catégorie professionnelle de l'enfant ( ca c'est bon)
- Ensuite, je voudrais additionner les salaires en appliquant un coefficient sur le salaire de chaque enfant :
enfant 1 : salaire 30, salarié : coeff=100 -> salaire=30
enfant 2 : salaire 100, salarié : coeff=70 -> salaire=70
totrev=100
et faire le total dans la variable "totrev" ( je ne récupere pas les bonnes valeurs et coeff .. )
pour ensuite envoyer ce résultat dans une autre frame ( ca c'est pas le plus dur)
je te renvoi le fichier que j'ai modifié pour qu'il envoi le résultat "totrev" sur la seconde frame en validant : http://dl.free.fr/getfile.pl?file=/qzXYUOZl
merci beaucoup de ton aide :)
je ne t'ai pas envoyé de mp car je en suis pas inscrit (honte sur moi :P)
je vais essayer de t'expliquer ce que je cherche a faire mais je pense que tu as malgre toi compri car ton code résoud quasiment mon soucis:
j'ai repris ton fichier et travaillé dans celui ci pour que ce soit plus simple.
- Je veux creer "dynamiquement" les lignes ou l'on entre le salaire et choisi la catégorie professionnelle de l'enfant ( ca c'est bon)
- Ensuite, je voudrais additionner les salaires en appliquant un coefficient sur le salaire de chaque enfant :
enfant 1 : salaire 30, salarié : coeff=100 -> salaire=30
enfant 2 : salaire 100, salarié : coeff=70 -> salaire=70
totrev=100
et faire le total dans la variable "totrev" ( je ne récupere pas les bonnes valeurs et coeff .. )
pour ensuite envoyer ce résultat dans une autre frame ( ca c'est pas le plus dur)
je te renvoi le fichier que j'ai modifié pour qu'il envoi le résultat "totrev" sur la seconde frame en validant : http://dl.free.fr/getfile.pl?file=/qzXYUOZl
merci beaucoup de ton aide :)