Affichage d'une table avec checkbox

Eléphant du PHP | 50 Messages

19 févr. 2009, 20:38

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

Eléphant du PHP | 139 Messages

19 févr. 2009, 22:28

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)

Eléphant du PHP | 50 Messages

19 févr. 2009, 22:58

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

Eléphant du PHP | 139 Messages

20 févr. 2009, 01:19

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.

Eléphant du PHP | 50 Messages

23 févr. 2009, 21:42

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

ViPHP
ViPHP | 1996 Messages

23 févr. 2009, 23:25

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
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 50 Messages

24 févr. 2009, 20:52

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

ViPHP
ViPHP | 4039 Messages

24 févr. 2009, 20:53

Mon grain de sable: ajax est pour javascript asynchrone. Du javascript quoi.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 50 Messages

28 févr. 2009, 18:56

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

japsit
Invité n'ayant pas de compte PHPfrance

01 mars 2009, 11:33

Bizarre tout a l'air ok
Mais bon je ne suis pas un expert non plus

Mammouth du PHP | 991 Messages

01 mars 2009, 13:13

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 

}
DevOps, Symfony4, Hoa

Eléphant du PHP | 50 Messages

01 mars 2009, 14:45

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