Afficher/cacher lignes d'un tableau

Signaler
-
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
-
Bonjour à tous,
Je poste mon code ci-joint car je n'arrive pas à résoudre un problème d'affichage de données.
En effet lorsque je souhaite cliquer sur mon input, j'aurai voulu que ma ligne apparait.
Mais lors du chargement de la page elle est déjà visible.
Si je souhaite la caché elle se cache une seconde et se raffiche derriere.
Je ne vois vraiment pas d'où cela peux venir..
En esperant que vous pourrez m'eclairer.

<?php
session_start();
if (isset($_SESSION['pseudo']) && isset($_SESSION['pwd']))
{
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Application medecin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel ="stylesheet" type="text/css" href="style.css">
</head>

<script language="javascript">

function liste(form5)
{
var test = "ligne_" + (form5.choixmedic.selectedIndex + 1) ;
alert(test);
document.getElementById(test).className = "visible";

}

function cacher()
{
var i = 0;
var ligne = "ligne_";

for (i=0;i<5;i++){
document.getElementById(ligne + i).className = "hidden";
}

}

';




echo '

</script>





Logo,

----

';
echo 'Bonjour ' . $_SESSION['pseudo'];
echo '
[access.php Accueil]

[commande.php Commander]

[etat.php Etat des commandes]
</td>

<td>
';

$sqlglobal = "SELECT libelle,description,alias,prix FROM medicaments";
include "config.php";
$i = 0;
echo "\";
$resultat = mysql_query($sqlglobal, $connection);
while ($row=mysql_fetch_array($resultat))
{
$i = $i + 1;

echo \"----
".$row[0]."-".$row[1].$row[2].$row[3].", \";}

echo "
";

echo '
</td>
</tr>
</table>




</html>';

}
else
{
echo 'Impossible de se rejoindre la page sans connection';
}
?>


John

1 réponse

Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
Bonjour,

Je suis désolés, mais votre code est illisible. L'éditeur contient des options permettant de colorer le code et de conserver une indentation.

Ci-dessous, votre code correctement indenté :





Application medecin



function liste(form5)
{
var test = "ligne_" + (form5.choixmedic.selectedIndex + 1) ;
alert(test);
document.getElementById(test).className = "visible";
}

function cacher()
{
var i = 0;
var ligne = "ligne_";

for (i = 0; i < 5; i++)
{
document.getElementById(ligne + i).className = "hidden";
}
}






Logo,

----

Bonjour

[access.php Accueil]

[commande.php Commander]

[etat.php Etat des commandes]




----
\">
,














Sinon, il serai plus simple et plus propre de mettre dés le départ un attribut class="hidden" plutôt que de le parcourir lors de l'évènement "load".

Pour répondre à ta question :
dans ta fonction cacher, tu fais :
document.getElementById(ligne + i).className = "hidden";
Malheureuseument, si document.getElementById(ligne + i) n'existe pas, l'exécution plantera et la suite de la fonction ne sera pas exécuté.

Autre point : remplace ton input type="submit" par type="button" et enlève l'attribut href

Cordialement,
Gigatrappeur