|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() |
Bonjour à tous !
Voici mon souci : il s'agit de traduire un texte d'une langue source vers une ou plusieurs langue cibles. La langue source doit être unique, c'est donc une list : Code :
Les langues cibles peuvent être multiples, ce sont donc des checkbox : Code :
Cependant il y a plusieurs contraintes : - la langue source et la langue cible ne peuvent être identiques. Pour l'instant je fais ce contrôle en php à la validation du formulaire. Mais étant données les contraintes suivantes, je souhaiterais le faire en Javascript. - j'ai des combinaisons de langues sources/cibles définies : FR vers (it, angl, esp, all, port) (it, angl, esp, all, port) vers FR Je souhaiterais donc :
Voici le détail de cette fonction : Code :
Merci beaucoup |
||||||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() |
Pour préciser, lorsque je sélectionne une valeur dans la liste de langues sources, j'obtiens l'erreur suivante :
" 'cibles.francais' a la valeur Null ou n'est pas un objet " Cette erreur est déclenchée par la ligne suivante du switch/case de la fonction activerCibles() : Code :
form.cibles['francais'].disabled='false'; |
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Code :
form.cibles['francais'].disabled='false'; ![]() Ceci dit, form fait partie du langage, l'utiliser comme nom de variable, de champ ou autre est plus que déconseillé !
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() |
Merci Bovino.
J'ai corrigé le nom du formulaire et les booléens de cette manière (je ne mets qu'une ligne) : Code :
|
||
|
|
00
|
|
|
#5 | ||
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 126 ![]() |
Bonjour,
Code :
|
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Code :
var inputs = form.elements[inputName]; input (nom pas terrible non plus ) est donc aussi une collection ![]() une collection n'a pas de value ! En fait, tu as juste oublié de préciser le rang de l'input : Et au passage, déclarer une variable dans une boucle n'est pas très propre, il est préférable de la déclarer en début de fonction puis juste de faire des affectations dans la boucle Mais bon, la solution d'andry est pas mal
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#7 |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 126 ![]() |
@Bovino
J'ai pas compris pourquoi tu racontes des histoires d'input et inputs .
|
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() |
Merci à vous 2 Bovina et andry ça marche bien maintenant !
j'ai ajouté une ligne, pour être sûr que quand la checkbox est désactivée elle n'est pas non plus cochée : Code :
Code :
<body onload="activerCibles('document.forms[0]', 'francais');"> En plus, quand je poste mon formulaire je change de page php qui contient le body |
||
|
|
00
|
|
|
#9 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() |
|
|
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() |
Pour l'affichage au chargement de la page, j'ai réussi :
avec Code :
Et là, si par exemple je sélectionne source = allemand et que je coche cible = francais, à la soumission du formulaire, j'ai bien francais qui est toujours coché mais les autre langues ne sont plus grisées si je rappelle la fonction init() ça va tout me vider non ?.. |
||
|
|
00
|
|
|
#12 |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 126 ![]() |
Tu peux le gérer facilement coté serveur (php)
Fait une recherche sur la php, il y a un bout de code que tu peux facilement adapter
|
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() |
|
|
|
00
|
|
|
#14 | ||
|
Membre du Club
![]() |
Je crois que j'ai réussi !!!
Sur tes conseils, j'ai vu dans la FAQ PHP comment appeler du php dans le javascript : Code :
<body onload="onLoadActiverCibles(document.forms[0],'<?php echo $source;?>','<?php echo $alerte; ?>');"> Et du coup, quand le formulaire est posté, je ne réinitialise pas les cibles comme au 1ere chargement, je gère juste le paramètre disabled et je laisse le traitement php gérer le paramètre checked : Code :
En fin j'espère du moins ! On n'est jamais à l'abri de découvrir qu'on a mal tester son truc ! Merci beaucoup Andry !!!!
|
||
|
|
00
|
|
|
#15 |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 126 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com