Page 1 sur 1

Affichage d'une table avec checkbox

Posté : 19 févr. 2009, 20:38
par remy42
Bonjour

Je suis entrain de concevoir un intranet
Actuellement je bosse sur la partie gestion des absences.
J'aurai aime savoir comment faire pour gerer les absences. J'ai l'idée théorique mais je ne sais pas comment la mettre en pratique si quelqu'un pouvais m'aider ce serait sympa.

A l'heure actuelle quand je choisis une "classe" et que je fait ok ca m'affiche sous forme de pseudo tableau ( en ligne on va dire ) la table "classe" avec les eleves correspondant.


prenom1 nom1 age1
prenom2 nom2 age2
prenom3 nom3 age3

J'aimerai qu'a coté de chaque ligne j'ai une checkbox me permettant de cocher apres avoir choisis la date et la plage horaires si un eleves est absent ( cocher ) ou present ( pas cocher )

Si quelqu'un peut m'aider ce serait super sympa
Ou si quelqu'un a une autre idée pour gerer les absences


Merci d'avance

Posté : 19 févr. 2009, 22:28
par rolusseum
Ta démarche théorique me semble bonne.
Pour ce qui est de la mise en pratique, je pense que tu devrais créer une table absence en plus des tables élèves et classes.
Les champs de la table absence pourrait être l'identifiant de l'élève, la date du jour, la plage horaire

Observation: si tu as 8 plages horaires, pour un élève absent la journée, cela fera 8 check box à cocher et donc 8 enregistrements dans la base de données (a voir)

Posté : 19 févr. 2009, 22:58
par remy42
merci pour ta reponses

J'ai deja une table absences
Actuellement il faut que je choisisse l'eleves ensutie dans 3 textbox que je rentre "jour" "mois" "année" et en dessous "heure debut" et heure fin" mais bon c'est crade comme solution je prefereai un tableau avec une checkbox a droite de chaque eleves et je coche s'il sont absent et pour la date un calendrier ( je suis en train de regarder la ) et pour la plage horaire un menu deroulant avec "heure debut" et "heurefin" plutot que de les saisir a la main

SI quelqu'un peut m'aider

Merci d''avance pour vos réponses

Posté : 20 févr. 2009, 01:19
par rolusseum
Insérer un calendrier, pourquoi pas, mais je ne suis pas certain que cela sera plus rapide.
En revanche à la place de faire 3 textbox, tu peux avoir 3 menus déroulants (jour, mois année) et par défaut afficher la date du jour. Au niveau manip, tu n'auras pas à t'occuper souvent de l'année et du mois.

Posté : 23 févr. 2009, 21:42
par remy42
Bonsoir,

Personne n'as d'idée pour me filer un petit coup de main ?

prenom1 nom1 age1 checkbox
prenom2 nom2 age2 checkbox
prenom3 nom3 age3 checkbox

Sachant que les lignes sont affiche via une requete SQL donc il faut que le nombre de checkbox soit dynamique etc

Je ne sais pas comment faire

Merci pour votre aide

Rémy

Posté : 23 févr. 2009, 23:25
par Aureusms
Hmmm :-k si tu mettais un type bolleen dans ta table absence.
Si checkbox coché => true en mode AJAX c'est assez sympa et facile à faire (pour ton niveau il me semble). Tu identifies le checkbox via l'id de l'élève genre :

Code : Tout sélectionner

Nom_38 Prenom_38<input type="checkbox" name="absence" value="eleve_38" onclick="lance_fonction_ajax_absence(this.value);">
Vois tu où je veux en venir : Tes checkbox sont dynamiques car les values vont toutes êtes différentes.
Tu peux aussi jouer sur l'attribut name (name="eleve_38") et this.name

Posté : 24 févr. 2009, 20:52
par remy42
Je suis vraiment dsl mais je ne comprend pas.
L'ajax n'est pas un autre language ?

Concretement il faut que je rajoute un champ dans ma table eleves ? c'est ca ?
Et ensuite comment j'affiche ma table avec une checkbox ? a coter de chaque ligne

Merci pour ton aide

Posté : 24 févr. 2009, 20:53
par Berzemus
Mon grain de sable: ajax est pour javascript asynchrone. Du javascript quoi.

Posté : 28 févr. 2009, 18:56
par remy42
Bon j'ai avancé c'est déja pas mal :)
J'ai ma checkbox a coté de chaque ligne mais j'ai une ERREUR

voici le code dans ma boucle while pour afficher ma checkbox
echo "<td><input type='checkbox' name='checkabs[]' value='".$ligne['numeleve']."'></td>";
dans ma page qui recoit les données la voila
// Connection a la base .....

<?php

//absent checkbox
	$checkabs=$_POST['checkabs'];   // LIGNE 20

if (sizeof($checkabs)==0)
	{
	echo "pas de case cochée";
	}
		else
		{
			foreach ($checkabs as $valabs)
			{
			echo $valabs ;
			}
		}
?> 
C'est très simple la mais c'est juste pour tester j'y vais pas à pas.
Alors si je coche mes case et que je valide tout va bien ca m'affiche les "numeleve"
Par contre si je coche rien et que je valide voila l'erreur que mon navigateur me sort

Code : Tout sélectionner

Notice: Undefined index: checkabs in C:\Program Files\EasyPHP 3.0\www\abs2.php on line 20 pas de case cochée
Pourquoi cette erreur alors que tout passe bien ???
Merci d'avance

Posté : 01 mars 2009, 11:33
par japsit
Bizarre tout a l'air ok
Mais bon je ne suis pas un expert non plus

Posté : 01 mars 2009, 13:13
par thehawk
Tout simplement PHP ne trouve pas de "checkabs" dans le tableau de $_POST.

pour l'enlever il te faut effectuer une vérification avant :
if (isset($_POST) and !empty($_POST))
{


// Ton code 

}

Posté : 01 mars 2009, 14:45
par remy42
Toujours le même problème :(
J'arrive pas a voir d'ou ca viens car si aucune case n'est coché il y a une valeur comme si une ou plusieurs cases sont cochées
Et lorsqu'il y en a de cochées ca fonctionne