Afficher résultat d'une liste déroulante dans un tableau sans avoir a recharger

Evony Messages postés 32 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 17 juin 2009 - 3 juin 2009 à 15:50
Evony Messages postés 32 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 17 juin 2009 - 3 juin 2009 à 16:53
Bonjour,

Je dois créer une application php dans laquelle une liste déroulante contenant les employés apparait. Jusque la pas de problème, seulement, il faut que lors du choix d'un employé, le tableau n'affiche que les infos de cet employé, le tout sans recharger la page, donc dès le clique sur l'employé le tableau se modifie. Je me doute que un code a deja été donnée, mais après moulte recherche je me decide de vous demander.
Merci.
A voir également:

6 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
3 juin 2009 à 16:04
Bonjour,
bah... dans le value du select, met les infos liées à cet employé
séparés avec "\t" par exemple
lors de la sélection d'une option, un ch'tiot split sur le value
et tu récupères un array avec les infos mémosrisées.
Cordialement
0
Evony Messages postés 32 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 17 juin 2009
3 juin 2009 à 16:21
Oui par exemple j'arrive a faire ma manip' en passant par onchange= "submit();" dans le select puis redirection sur la meme page, mais a ce moment la, la page se recharge ce que je ne veut pas.

voila deja mon code :

<html>
<head><title>Compte-rendu</title></head>

<form action="index.php" method="get">
<select name = "lstcat1" onchange="submit();">
<?php
  $rs = mssql_query("select * from employe order by nom");
  $ligne = mssql_fetch_array($rs);
echo"<option value=0> </option>";
  while ($ligne == true)
  {
echo"<option value=$ligne[NumEmp]>$ligne[Prenom]</option>";
   $ligne = mssql_fetch_array($rs);
  }
?>
    </select>
   

<?php
  $emp = $_GET["lstcat1"];
if (isset($emp))
{
  $rs = mssql_query("select * from employe where NumEmp='$emp'");
  $ligne = mssql_fetch_array($rs);
echo "Compte rendu d'activité pour $ligne[Nom] $ligne[Prenom] :
";

?>

<?php
echo"\";
 echo\"\";
 echo\" Date |Durée |Prénom |Activité |Commentaire |\";
 echo\"\";
 $i = 0;

 $rs2 = mssql_query(\"select *, convert(varchar(12), DateCra, 113) as madate from Cra, Employe, Activite where cra.NumEmp=employe.NumEmp and cra.NumActivite=activite.NumActivite and cra.NumEmp='$ligne[NumEmp]'\");
 $ligne2 = mssql_fetch_array($rs2);
     while ($ligne2 == true)
    {
?>

----

<?php
echo\"$ligne2[madate], $ligne2[Duree], $ligne2[Prenom], $ligne2[Libelle], $ligne2[Commentaire], \";
echo\"\";
    $i++;
    $ligne2 = mssql_fetch_array($rs2);
}
}

echo"
";
?>

</form>

</html>

donc le tableau change bien a chaque fois que je selectionne un employés, mais la page se recharge, ce qui va m'apporter quelque souci par la suite.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
3 juin 2009 à 16:33
>>j'arrive a faire ma manip' en passant par onchange="submit();"
????
pourquoi un submit 
   d'ailleurs ? t'es sur que ça baigne ça ?
       tu as une fonction submit ? alors ça craint, change de nom !!!
       sinon la syntaxe c'est formulaire.submit() !
   et si tu fais un submit, ben, ça envoie le formulaire vers le php,
       qui retournera une réponse qui sera affiché !
   appelle ta fonction javascript qui fait le split et l'affichage
   ...onchange="exploser(this);"....
   function exploser(f)
   {  var d=f.options (f.selectedIndex].value.split("\t");
      traitement de d[0] = 1er champ, d[1]=2ème champs....

  en plus tu sembles ne mettre qu'un seul champ ?  NumEmp ?
  dans ce cas, le split est même inutile, utilise directement le .value

echo"<option value='$ligne[NumEmp]'>$ligne[Prenom]</option>";  aussi probablement.

@+
0
Evony Messages postés 32 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 17 juin 2009
3 juin 2009 à 16:42
Oui, je suis sur que sa marche, mais le hic, c'est que je n'ai aucune notion de javascript, donc pour le moment, a chaque fois que je selectionne une personne, ma page se re-ouvre avec le bon tableau de la bonne personne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
3 juin 2009 à 16:49
>>en plus tu sembles ne mettre qu'un seul champ ?  NumEmp ?
>>dans ce cas, le split est même inutile, utilise directement le .value
en fait je pense que tu dois y mettre les champs dont tu auras besoin
comme indiqué :*
echo '<option value="
                            '.$ligne[NumEmp]'."\t".
                            '.$ligne[champ 1 lié à l'employé]'."\t"
                            '.$ligne[champ 2 lié à l'employé]'.."\t" ....
                           ">'.$ligne[Prenom].'</option>';
au ' et " près !!! et c'est un exemple, à toi d'adapter à ce que tu voudrais.
0
Evony Messages postés 32 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 17 juin 2009
3 juin 2009 à 16:53
Bon je vais regarder tout sa de plus près en esperant y avoir, en tout cas merci a toi.
0
Rejoignez-nous