Afficher/cacher lignes d'un tableau

drwongg - 15 avril 2013 à 17:26
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 - 7 mai 2013 à 10:10
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

Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 1
7 mai 2013 à 10:10
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
0
Rejoignez-nous