SVP aide sur problème XHTML et Java

Fermé
dingos - 21 janv. 2011 à 16:09
 dingos - 24 janv. 2011 à 17:14
Bonjour,



Bonjour,


j'ai une question sur un test que je fais dans le cadre de mon apprentissage !

j'ai créer un formulaire avec des checkbox qui renvoie automatique une valeur quant on coche et enleve la valeur quant on décoche jusque là tout marche maintenant je voudrais envoyer deux valeurs quant on coche

par exemple si j'ai une checkbox que l'on clique dessus il doit envoyer deux resultat dans deux champs resultat

exemple

Resultat 1 : 25
Resultat 2 : 30

et j'y arrive pas ?? !! :colere2: :colere2:

Voici ce que j'ai fait pour l'instant

Code : HTML - Sélectionner



<html>
<script language="JavaScript">
function calcul() {
var total = 0;

// Permet de ne pas declarer le nombre d'elements du formulaires
var nb;
nb = document.devis.coche.length;
total = eval(document.devis.prix_base.value);

// Evalue toutes les cases cochees
for( i = 0 ; i < nb ; i++ ) {
if (document.devis.coche[i].checked) total = total + eval(document.devis.coche[i].value);
}
// Affiche le total de toutes les cases cochees
document.devis.prix_total.value = total;
}
</script>

<head>
<title>Document sans nom</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<form name="devis">
<p>

<input type="hidden" name="prix_base" value="0">
</p>

<p>
<td><label>Rénovation plastiques extérieurs</label></td>
<td><input name="coche" type="checkbox" onClick="calcul();" name="01" id="prix01" value="30.00"/></td>
<td class="right classeA"><label class="xsmall bold style10" for="prix01">30.00 €</label></td>
<td class="right classeB"><label class="xsmall bold style11" for="prix01"> 33.00 €</label></p>
<p>
<td><label>Rénovation Toit ouvrant</label></td>
<td><input name="coche" type="checkbox" onClick="calcul();" name="02" id="prix02" value="50.00"/></td>
<td class="right classeA"><label class="xsmall bold style10" for="prix01">50.00 €</label></td>
<td class="right classeB"><label class="xsmall bold style11" for="prix01"> 55.00 €</label></p>


<p> <input type="text" name="prix_total" value="0" size="8">
Prix Option normal
<p> <input type="text" name="prix_total2" value="0" size="8">
Prix Option Luxe

<input type="reset" value="Effacer">
</p>
</form>

</body>
</html>


Merci pour votre aide
A voir également:

3 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 21/01/2011 à 17:07
Bonjour,

Alors, déjà, un peu de sémantique.
Tu ne codes pas en XHTML, mais en HTML.
Tu ne fais pas de Java, mais du Javascript.

Ceci mis à part, je vois au premier abord quelques problèmes gênants dans ton code :
- ton bloc <script> est entre le <html> et le <head> : il devrait être inclut dans le <head>, sinon tu n'as aucune assurance qu'il sera bien interprété par le navigateur.
- ton bcode HTML ne respecte pas la règle une balise ouvrante -> une balise fermante, et certaines balises se chevauchent
- et surtout, tes <input> ont deux name différents ! du coup, lequel utiliser dans ton script ?
- le eval n'est pas nécessaire ici, tu peux le supprimer simplement.

Xavier
0
Merci bien pour le petit cours de sémantique j'en prend bien note et je ferais le necessaire ! mais celà ne m'aide pas pour résoudre mon problème

merci bien
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 janv. 2011 à 10:53
Tu veux dire que tu as appliqué toutes les corrections données, et que ça ne marche toujours pas ?
Tes <input> n'ont plus deux attributs "name" ?
0
BOnjour si je met le même attribut name comment veut tu qu'il fasse la différence entre les deux tarifs qui sont différentes ???

tu as peut etre mal lu ma question initial regarde bien :
je veux deux resultat différents donc si je met le meme nom dans le input je vais renvoyer le meme resultat ce n'est pas ce que je cherche !

merci bien
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 janv. 2011 à 16:09
Je regarde bien. Et je maintiens ce que j'ai écrit.
Je vois :
<input name="coche" type="checkbox" onClick="calcul();" name="02" id="prix02" value="50.00"/>

deux fois « name » pour un seul <input>.
Donc ça ne peut pas marcher.

Ensuite, ton script utilise « document.devis.coche[i].checked »
Donc contrairement à ce que tu dis, tu prends bien en compte le fait que les deux boîtes à cocher ont le même « name="coche" », puisque tu prends celui d'indice « i ».
0
bien sur ! tu as bien raison ! c'est ce que je dis je ne sais pas comment faire pour envoyer deux valeurs différentes ! je n'affirme rien ! je suis paumé c tout ! je demande ? merci
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 janv. 2011 à 16:43
Il suffit d'enlever name="01" et name="02".
0
si je fais ca ca marche plus ! parce que mon code fonctionne quant meme avec qu'une seul affectation !

peut tu directement modifier mon code que je comprenne ? merci bien
0