Bonjour à tous je suis nouveau,
je débute en java script et je réalise pour ma boite une page web pour calculer les prix de revient.
Sur la page qui me pose problème j'ai adapter un code trouver sur internet qui permet de cacher en fait un tableau. Ma page fonctionne mais avec un petit defaut.
Voici le code de la page:
Est ce que le code comporte des erreurs?
En fait le problème c'est que quand je charge la page par défaut, le bouton "non" est bien coché (checked) mais il y a quand même le tableau qui apparait en dessous. Je suis obliger de cliquer sur "oui" puis "non" pour que le tableau disparaisse.
Quel code je doit ajouter pour que dès le chargement de la page le paramètre "non" s'applique tout de suite ( et donc qu'il cache mon tableau en dessous).
Merci d'avance pour votre aide
guigui69
Modifié par guigui69 (22 Oct 2007 - 11:52)
je débute en java script et je réalise pour ma boite une page web pour calculer les prix de revient.
Sur la page qui me pose problème j'ai adapter un code trouver sur internet qui permet de cacher en fait un tableau. Ma page fonctionne mais avec un petit defaut.
Voici le code de la page:
<html>
<style type="text/css">
table { border-collapse : collapse; }
th,td { border : 1px solid #000; padding : 2px 4px; }
th { background-color : #eee; }
</style>
<head>
<title>essai</title>
</head>
<script type="text/javascript">
var EMB =
{
nbEmballage : 0,
idEmballage : 0,
ajouter : function ()
{
var e = document.getElementById('emballage');
var qe = document.getElementById('quantite_emb');
var tbody = document.getElementById('liste-emballage');
if (EMB.nbEmballage == 0) { tbody.deleteRow(0); }
var tr = tbody.insertRow(tbody.rows.length);
var td1 = tr.insertCell(0);
var td2 = tr.insertCell(1);
var td3 = tr.insertCell(2);
// Insertion produit
var emb = document.createTextNode(e.options[e.selectedIndex].text);
var embInput = document.createElement('input');
embInput.setAttribute('type', 'hidden');
embInput.setAttribute('name', 'emballage[' + EMB.idEmballage + ']');
embInput.setAttribute('value', e.options[e.selectedIndex].value);
td1.appendChild(emb);
td1.appendChild(embInput);
// Insertion quantité
var embqtte = document.createTextNode(qe.value);
var embqtteInput = document.createElement('input');
embqtteInput.setAttribute('type', 'hidden');
embqtteInput.setAttribute('name', 'quantites_emb[' + EMB.idEmballage + ']');
embqtteInput.setAttribute('value', qe.value);
td2.appendChild(embqtte);
td2.appendChild(embqtteInput);
// Bouton supprimer
var btnSupprimer = document.createElement('input');
btnSupprimer.setAttribute('type', 'button');
btnSupprimer.setAttribute('value', 'Supprimer');
btnSupprimer.onclick = EMB.supprimer;
td3.appendChild(btnSupprimer);
// Inc nbProduits et id
EMB.nbEmballage++;
EMB.idEmballage++;
},
supprimer : function ()
{
var tbody = document.getElementById('liste-emballage');
var row = this.parentNode.parentNode;
var index = 0;
while (row = row.previousSibling)
{
if (row.tagName) { index++; }
}
tbody.deleteRow(index);
EMB.nbEmballage--;
if (EMB.nbEmballage == 0)
{
var tr = tbody.insertRow(0);
var td = tr.insertCell(0);
td.setAttribute('colSpan', 3);
td.appendChild(document.createTextNode('Aucun emballage'));
}
},
check : function ()
{
if (EMB.nbEmballage < 1) alert('Il faut au moins 1 emballage');
return EMB.nbEmballage > 0;
}
};
function ShowElem(idelem)
{
document.getElementById(idelem).style.display='block';
}
function HideElem(idelem)
{
document.getElementById(idelem).style.display='none';
}
</script>
<body>
Est-ce que votre produit à du fourrage?
<form method="post">
<input type="radio" name="fourrage" value="fourrage2" CHECKED onclick="ShowElem('texte2');HideElem('page')"> non
<input type="radio" name="fourrage" value="fourrage1" onclick="ShowElem('page');HideElem('texte2')" > oui
</form>
<div id="page">
<?php
mysql_connect($server,$user,$pass) or die('erreur de connexion');
mysql_select_db($db) or die ('impossible de se connecter a la base');
$sql2="SELECT id_emb, nom_emb FROM emballage;";
$query2= mysql_query($sql2) or die('erreur');
$nb2= mysql_num_rows($query2);
if ($nb2 == null){
echo "Pas de produit disponible.";
} else {
echo "<div>";
echo "<p>";
echo '<label for="produit1">Produit : </label>';
echo '<select id="emballage" name="emballage">';
while ( $list2 = mysql_fetch_array( $query2 ) ) {
echo '<option value="'.$list2["id_emb"].'">'.$list2["nom_emb"].'</option>';
}
}
?>
</select>
<label for="quantite">Quantité : </label>
<input type="text" id="quantite_emb" name="quantite_emb" value="" size="3" />
<input type="button" id="ajouter" name="ajouter" value="Ajouter" onclick="EMB.ajouter();" />
</p>
<table>
<thead>
<tr><th>Produit</th><th>Quantité</th><th>Action</th></tr>
</thead>
<tbody id="liste-emballage">
<tr><td colspan="3">Aucun produit</td></tr>
</tbody>
</form>
</div>
<div id="texte2" style="display:none">texte 2</div>
</body>
</html>
Est ce que le code comporte des erreurs?
En fait le problème c'est que quand je charge la page par défaut, le bouton "non" est bien coché (checked) mais il y a quand même le tableau qui apparait en dessous. Je suis obliger de cliquer sur "oui" puis "non" pour que le tableau disparaisse.
Quel code je doit ajouter pour que dès le chargement de la page le paramètre "non" s'applique tout de suite ( et donc qu'il cache mon tableau en dessous).
Merci d'avance pour votre aide
guigui69
Modifié par guigui69 (22 Oct 2007 - 11:52)