Pb style.visibility sous Php

Résolu
jpsoniag Messages postés 2 Date d'inscription lundi 22 février 2010 Statut Membre Dernière intervention 19 juillet 2010 - 17 juil. 2010 à 20:17
jpsoniag Messages postés 2 Date d'inscription lundi 22 février 2010 Statut Membre Dernière intervention 19 juillet 2010 - 19 juil. 2010 à 21:23
Bonjour,

Je suis débutant en Php. J'ai suivi les infos du siteduzero pour essayer de créer un truc assez simple.
Je vais en base rechercher des joueurs et les fonctions qu'ils peuvent occuper (arbitre, équipe, entraineur, ...).

En arrivant sur la page, l'ensemble des joueurs est affiché. En bas de la page, toutes les fonctions disponibles sont placées.

ce que je cherche à faire, c'est quand le pointeur passe sur une fonction, les joueurs ayant cette qualification restent affichés, les autres sont cachés. Quand la souris sort de la fonction, tous les joueurs se réaffichent.

Pour cela, j'utilise un tableau associatif à 2 dimensions :
['joueur1'][0]='arbitre'
['joueur1'][1]='equipe1'
...

Les appels par les onmouseover et onmouseout marchent mais le javascript n'est pas très compréhensif. Soit il ne cache rien, soit quand je lui dit de tout cacher (pour voir), en sortie de zone, il ne me réaffiche rien.

Je suis en panne séche. Si l'un d'entre vous pouvait m'aider, ce serait très aimable. Je teste à la fois sur IE8 et sur Chrome. c'est idem.

Voici le code de la page :
<!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">
<?php
try
{
//connection BDD
$bdd=new PDO('mysql:host=localhost;dbname=VBCD','root','');

}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
//on récupére toutes les infos dont on a besoin
$joueurs = $bdd->query('select * from JOUEUR j inner join ACTIVITE a on j.id=a.id_joueur where a.annee=\'20092010\' and a.id_fonction=\'jo\' order by j.nom') or die(print_r($bdd->errorInfo()));

$fonctionx = $bdd->query('select f.id, f.role from FONCTION f inner join ACTIVITE a on f.id=a.id_fonction where a.annee=\'20092010\' group by f.id, f.role') or die(print_r($bdd->errorInfo()));

$tableau = $bdd->query('select * from ACTIVITE where annee=\'20092010\' order by id_joueur') or die(print_r($bdd->errorInfo()));
?>




<head>
<title>liste des joueurs</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>




<SCRIPT language="Javascript">
//construction du tableau associatif à 2 dimensions
var activite = new Array();
<?php
$id="";
$i=0;
while($element=$tableau->fetch())
{
if($element['ID_JOUEUR']!=$id)
{
echo 'activite[\''.$element['ID_JOUEUR'].'\']=new Array();';
$i=0;
$id=$element['ID_JOUEUR'];
}
echo 'activite[\''.$element['ID_JOUEUR'].'\']['.$i.']=\''.$element['ID_FONCTION'].'\';';
$i++;
}
?>
//fonction qui cache les joueurs qui n'ont pas la fonction
function cache(idAfficher)
{
for(var key in activite)
{
document.getElementById(key).style.visibility='hidden';
var role=activite[key];
for(var j=0; j<role.length;j++)
{
if(role[j]=idAfficher);
{
document.getElementById(key).style.visibility='visible';
}
}
}
}
// fonction qui réaffiche tout le monde
function affiche()
{
for(var key2 in activite)
{
document.getElementById(key2).style.visibilty='visible';
}
}
</SCRIPT>

<?php $tableau->closeCursor(); ?>

Les JOUEURS

<?php
// on affiche tous les joueurs
$premier=true;
$colonne=1;
while($joueur=$joueurs->fetch())
{
if($premier)
{
echo '';
$premier=false;
}

if($colonne==1)
{
echo '----
';
}
if($joueur['ALIAS']==\"\")
{
echo ', ';
}else{
echo ', ';
}

$colonne++;
if($colonne==9)
{
echo '';
$colonne=1;
}
}
if($colonne!=1)
{
while($colonne!=9)
{
echo ', ';
$colonne++;
}
echo '';
}
echo '
';
$joueurs->closeCursor();

// on affiche toutes les fonctions possibles
echo '';
echo '----
';
while($fonction=$fonctionx->fetch())
{
echo ''.$fonction['role'].' , ';
}
echo '
';

$fonctionx->closeCursor();

?>

</html>

Cordialement,
Jean-Philippe

2 réponses

jpsoniag Messages postés 2 Date d'inscription lundi 22 février 2010 Statut Membre Dernière intervention 19 juillet 2010
19 juil. 2010 à 21:23
La prochaine fois je saurais. Quand on débute, on débute partout....
Sinon, après maintes recherches, j'ai trouvé il y a 5 minutes, c'est tout bête : si je savais taper au clavier cela irait mieux, cela éviterais de mettre style.visibilty !!!!

Merci pour avoir pris le temps de lire......
Cordialement
Jean-Philippe
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
19 juil. 2010 à 20:19
Bonjour,
...mais le javascript n'est pas très compréhensif...
je te rassures pour nous non plus

- Utilises les balises de code à ta disposition pour mettre ton code, dans le bandeau au dessus de la boîte de saisie
- Mets nous la page générée par le PHP, click droit -> afficher la source, et non pas le PHP brut

...dans ce cas il se pourrait que l'on puisse t'aider
;O)
0
Rejoignez-nous