Bonjour,

J'ai créé un formulaire dans lequel il y a plusieurs onglet. Dans chaque onglet l'internaute peut cliquer sur des boutons radios. En fonction de ses choix, le résultat doit s'afficher dans une div. Je bute sur la combinaison des choix et l'afichage du coup de mon résultat.
Voici ce que j'ai commencé à faire :

<script type="text/javascript">
function prix()
{
var monuments = document.getElementsByName("monuments");
var granits = document.getElementsByName("granits");
for(i=0;i<monuments.length;i++){
if(monuments.checked){
var valeur = parseInt(monuments[i].value);
document.getElementById('texte').innerHTML = valeur;
}
}
}
function enlever()
{
if (document.getElementById('email').value == 'Votre e-mail')
{
q = document.getElementById('email').value = '';
}
}
function rajouter()
{
if (document.getElementById('email').value == '')
{
document.getElementById('email').value = 'Votre e-mail';
}
}
</script>

bouton radio concernant l'onglet 1 :
<input onchange="prix()" type="radio" value="816" id="alhambra" name="monuments"/>
<input onchange="prix()" type="radio" value="1594" id="helios" name="monuments"/>

bouton radio concernant l'onglet 2 :
<input onchange="prix()" type="radio" value="300" id="tarn" name="granits"/>
<input onchange="prix()" type="radio" value="400" id="dalva" name="granits"/>

ma div qui affiche le résultat :
<div id="texte">0</div>

Par exemple, si on clique sur "alhambra" et le combinant avec "tarn" sa doit me donner un prix différent que "alhambra" et "dalva".

Une petite idée de là ou je pêche ?
[/i]
Bonjour.

Oui, j'ai eu une idée où vous pêchez :
if(monuments.checked){

doit devenir
if(monuments[i].checked){


Smiley smile
Bonjour et merci Zelena,
J'ai bien mis le manquant.
Mais dire alors que si on clique sur le bouton radio "alhambra" et "tarn" ca donne une valeur différente que si on clique sur "alhambra" et "dalva" ?

Merci encore
Bon en fait j'ai réussi a faire que les combinaisons se calcul, en revanche si les deux boutons radios ne sont pas cliqué au démarrage j'ai l'affichage qui indique :

NaN

Pourquoi ?

<script type="text/javascript">
function prix()
{
var monuments = document.getElementsByName("monuments");
var granits = document.getElementsByName("granits");
for(i=0;i<monuments.length;i++);
for(i=0;i<granits.length;i++)
{
if(monuments.checked){
var valeur = parseInt(monuments[i].value);
}
if(granits[i].checked){
var valeur2 = parseInt(granits[i].value);
}
document.getElementById('texte').innerHTML = valeur + valeur2;
}
}
function enlever()
{
if (document.getElementById('email').value == 'Votre e-mail')
{
q = document.getElementById('email').value = '';
}
}
function rajouter()
{
if (document.getElementById('email').value == '')
{
document.getElementById('email').value = 'Votre e-mail';
}
}
</script>
[/i][/i][/i]
On a poste presque en même temps je ne sais pas si tu as vu ma réponse précédente.

Quand tu postes du code il faut utiliser la balise code qui va bien (parmi code html css php mysql Javascript) qu'il y a en dessous des smileys.

Dans ton code, l'erreur est que tu n'as pas initialisé la valeur de "valeur" et "valeur2" du coup quand tu fais :
document.getElementById('texte').innerHTML = valeur + valeur2;

la balise texte reçoit une valeur qui vaut n'importe quoi. (et pour info : NaN signifie "Not a Number" )
Modifié par mathieu1004 (21 Apr 2017 - 11:43)
Bonjour mathieu,
Ca marche nickel merci !!
Mais mon autre soucis, c'est que le bouton name "monuments" à plusieur "id" qui donne des prix différents si on les combines avec le bouton name "granits" qui lui aussi à plusieur "id".

Et la je sèche. Faut-il que je remplace la name par l'id dans la formule ?
Re,
J'ai de résumer :
J'ai deux catégories, chacune possède plusieurs boutons radios ou un seul n'est sélectionnable par catégorie.
Quand tu clique sur le bt1 de la 1ère catégorie et bt1 de la 2nd catégorie, ca donne x
Quand tu clique sur le bt1 de la 1ère catégorie et bt2 de la 2nd catégorie, ca donne y
Quand tu clique sur le bt2 de la 1ère catégorie et bt1 de la 2nd catégorie, ca donne z
.....
Ouais, c'est exactement ce que cela fait et il n'y a pas besoin des id pour ca.
(je n'ai pas testé ta solution mais dans celle que j'ai proposée dans le jsfiddle c'est bien ce qui se passe)

En regardant rapidement ta solution il y a des erreurs dans tes 2 boucles, une ne fait rien et seule la 2e fait le job, cela ne marchera que si il y a autant d’éléments tes 2 catégories.

Au cas ou, je te remet lien vers la solution que j'avais proposé : https://jsfiddle.net/0gq80st4/
Re mathieu,

Merci, je m'aperçois que je me suis mal exprimé.
En fait les valeurs de ma seconde catégorie changent en fonction du choix dans la 1ère catégorie.
Autant bt1 de la seconde peut valoir 100 par exemple si on clique sur bt1 de la première catégorie, autant bt1 de la seconde peut valoir 200 par exemple si on choisit aussi le bt2 de la première catégorie.

Pfff je m'arrache le tête là
Smiley sweatdrop
Modifié par flo82000 (21 Apr 2017 - 17:15)