Metagames


Précédent   Metagames > Discussions Générales > Informatique > Développement
Accueil S'inscrire Blogs FAQ Communauté Calendrier Téléchargements Messages du jour Recherche

Développement Programmation et POO (C, C++, Java, Python ...) et Développement Orienté Web (HTML, CSS, PHP, SQL, W3C ...)

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 29/08/2008, 08h10   #1 (permalink)
Profil
Membre
Ancienneté  83%
Ancienneté 83%
 
Avatar de PsyKos
 
Date d'inscription: mai 2006
Localisation: Québec :love:
Âge: 41
Genre : Homme
Pays :
Messages: 4 962
Téléchargements: 0
Uploads: 0
Merci: 27
Remercié 76 fois dans 28 Posts
Par défaut Rajout d'une case à cocher + fonction

Bonjour à toutes et à tous et surtout, merci à celui ou ceux qui pourront m'aider.

J'ai commencé un nouveau boulot et mon chef veut que je modifie un programme en PHP en lui rajoutant une case à cocher afin de rajouter une fonction dans celui-ci. Problème majeur : je n'ai jamais développé en PHP ni même appris ce langage, ce qu'il n'a pas du comprendre...

Je vous explique un peu le topo. En fait, le programme est une page Web (vous devez vous en douter ) qui permet d'affecter des candidats à un centre d'examen (je bosse pour l'éducation nationale ). Le soucis étant que si l'examinateur se trompe de centre d'examen, il n'a aucun moyen de rectifier le tir, et c'est ce pourquoi je dois intervenir. Il s'agit donc de mettre une case à cocher pour pouvoir inclure dans la recherche des candidats, ceux déjà affectés et ainsi pouvoir modifier leur centre d'examen.

Je sais que cela peut vous paraitre tout bête mais quand on a jamais développé dans ce langage et qu'en plus, mon prédécesseur n'a laissé aucune documentation ou commentaire, cela devient plus que galère...

Je vous donne les morceaux du programme concernant cette partie donc :


--------------------------------------------------------------------------


affect.php

Code:
<?php
	echo "<table id='page'><form method='post'>\n";
	echo "<tr>\n<th>Individuels : <input type='radio' name='candtype' value='i'";
	if ($candtype != "s")	
	{
		$candtype = "i";
		echo " checked";
	}
	echo" onclick='submit()'></th>\n";
	echo "<th>Scolaires :  <input type='radio' name='candtype' value='s'";
	if ($candtype == "s")	echo " checked";
	echo " onclick='submit()'></th>\n</tr>\n";
	echo "<tr>\n<th>Inclure les candidats déjà affectés (TEST) : <input type='checkbox' name='inc_aff' value='1'";
	if ($inc_aff == "0") echo " checked";
	echo "onclick='submit()'></th>\n</tr>\n";
	
	echo "</form>\n";
	echo "<form name='formaff'>\n";
	echo "<input type='hidden' name='candsel' value='$candtype'>\n";
?>
	<tr><td id="menuinfo" colspan="2">
	<select name='centreo'>
	</select>
	</td></tr>
	<tr><td id="menuinfo" colspan="2">
	|<br>|<br>V
	</td></tr>
	<tr><td id="menuinfo" colspan="2">
	<select name='centree'>
        </select>
	</td></tr>
	<tr><td id="menuinfo" colspan="2">
	<input type='button' value='Affecter' onclick='list_number()'>
	</td></tr>
	</table>
	</form>
	<script src="ajax/ajaff.js">
	</script>
	<script>
		makeRequest("ajax/ajreqaff.php","?sess=<?php echo $_SESSION["exam"]; ?>&candtype=<?php echo $candtype; ?>")
		function list_number()
		{
			seletab = window.document.formaff.centreo.options[window.document.formaff.centreo.selectedIndex].text
			candtype = window.document.formaff.candsel.value
			pos1 = seletab.indexOf("(")+1
			pos2 = seletab.indexOf(")")
			newsel = seletab.substring(pos1,pos2)
			affnb = prompt("nombre d'élève à affecter / "+newsel,newsel)
			if (affnb <= newsel)
			{
				rneori = window.document.formaff.centreo.options[window.document.formaff.centreo.selectedIndex].value
				rneexa = window.document.formaff.centree.options[window.document.formaff.centree.selectedIndex].value
				makeRequest("ajax/ajreqaff.php","?ctro="+rneori+"&ctre="+rneexa+"&nbaff="+affnb+"&sess=<?php echo $_SESSION["exam"]; ?>&user=<?php echo $_SESSION["user"]; ?>&candtype="+candtype)
			}
			else
				alert("Impossible d'affecter plus de candidats que le nombre de non-affectés")
		}
	</script>
<?php
}


if ( isset($listelev) && isset($ctr_exa) )
{
	$eleves=explode("|",$listelev);
	foreach ( $eleves as $eleve )
	{
		$REQ->aff_cand_exa($eleve,$centre);
	}
}
else if ( isset($ctr_ori) && isset($nbelv) && isset($ctr_exa) )
{
	

}

?>
--------------------------------------------------------------------------


cfg_req.php (liste de fonctions visiblement)

Code:
function list_non_aff($typec,$session,$ordre)
{
	if ( $typec == "i" )
		$type = "in (2,3)";
	else if ( $typec == "s" )
		$type = "= 1";
	$requete = "	select 	id_cand,numins,lib_civ,nom,pre,datenais
			from 	cand,civilite
			where 	id_session = $session and
				id_type $type and
				cand.id_civ = civilite.id_civ and
				deleted = 'n' and
				id_cand not in (select id_cand from cand_exa)";
	if ($ordre == "num")
		$requete .= "	order by numins";
	else if ($ordre == "nom")
		$requete .= "   order by nom,pre";
	$this->requete($requete);
}

function list_aff($typec,$session,$ordre)
{
	if ( $typec == "i" )
		$type = "in (2,3)";
	else if ( $typec == "s" )
		$type = "= 1";
	$requete = "	select 	id_cand,numins,lib_civ,nom,pre
			from 	cand,civilite
			where 	id_session = $session and 
				id_type $type and 
				cand.id_civ = civilite.id_civ and 
				deleted = 'n'";
		if ($ordre == "num")
		$requete .= "	order by numins";
	else if ($ordre == "nom")
		$requete .= "   order by nom,pre";
	$this->requete($requete);
}

function cand_non_aff($ctr='',$type="l")
{
	if ( $type = "l" )
		$requete = "	select cand.id_cand,cand_ori.rne_ctr";
	else if ( $type = "c" )
		$requete = "	select count(cand.id_cand,cand_ori.rne_ctr";
	$requete .="	from 	cand_ori,cand,cand_exa
			where 	cand_ori.id_cand = cand.id_cand 
			and 	deleted = 'n'
			and 	cand.id_cand not in 
				( select id_cand from cand_exa )";
	if ( $type = "c" )
		$requete .= "	group by cand_ori.rne_ctr";

	$this->requete($requete);
}

function aff_cand_exa($idcand,$ctre)
{
	if ( $this->verifexist($idcand,"id_cand","cand_exa") == 0 )
		$requete = "	insert into cand_exa
				values ($idcand,'$ctre')";
	else
		$requete = "	update cand_exa
				set rne_ctr = '$ctre'
				where id_cand = $idcand";
	$this->requete($requete,"insupd");
}

function list_alea_cand($sess,$ctro,$candtype="")
{
	$requete = "	select 	cand.id_cand,nom,pre
			from	cand, cand_ori
			where	cand.id_cand = cand_ori.id_cand
			and	rne_ctr = '$ctro'
			and	deleted = 'n'
			and	cand.id_cand not in 
			( select id_cand from cand_exa )";
	if ( $candtype != "" )
	{
		if ( $candtype == "i" )
	                $type = "in (2,3)";
	        else if ( $candtype == "s" )
	                $type = "= 1";
		$requete .= "	and id_type $type";
	}
	$this->requete($requete);
	if (is_array($this->result))
	{
		$result = array();
		foreach ($this->result as $val)
		{
			$result[$val["id_cand"]] = md5($val["nom"]." ".$val["pre"]);
		}
		asort ($result);
		$this->result = array();
		foreach ($result as $key => $val)
		{
			array_push($this->result,$key);
		}
	}
}

function view_cand_exa($idcand)
{
	$requete = "	select 	rne_ctir
			from 	cand_exa
			where 	id_cand = $idcand";
	$this->requete();
}

function nbre_non_aff_ctr($session,$candtype)
{
	$requete = "	select 	count(id_cand),rne_ctr
			from 	cand_ori
			where 	id_cand in 
			(select id_cand from cand where id_session = $session 
			 and	deleted = 'n')
			and 	id_cand not in
			(select id_cand from cand_exa)";
	if ( $candtype != "" )
	{
		if ( $candtype == "i" )
	                $type = "in (2,3)";
	        else if ( $candtype == "s" )
	                $type = "= 1";
		$requete .= "	and id_cand in 
				(select id_cand from cand where id_type $type)";
	}
	$requete .= "	group by rne_ctr";

	$this->requete($requete);
}

function nbre_aff_ctr($session,$rne,$candtype="")
{
        $requete = "    select 	count(id_cand)
                        from 	cand_exa
                        where 	id_cand in 
                        (select id_cand from cand where id_session = $session
			 and deleted = 'n')
			and 	rne_ctr = '$rne'"; 
	if ( $candtype != "" )
	{
		if ( $candtype == "i" )
	                $type = "in (2,3)";
	        else if ( $candtype == "s" )
	                $type = "= 1";
		$requete .= "	and id_cand in 
				(select id_cand from cand where id_type $type)";
	}

echo $requete;
        $this->requete($requete);
}

function list_cand_ctre($sess,$typec,$ctre)
{
	
	if ( $typec == "i" )
                $type = "in (2,3)";
        else if ( $typec == "s" )
                $type = "= 1";	
	$requete = "	select 	lib_civ,nom,pre,rne_ctr,date_epr,heure
			from 	civilite,cand,cand_exa,cand_epr
			where	civilite.id_civ = cand.id_civ
			and 	cand.deleted <> 'o'
			and	cand.id_cand = cand_exa.id_cand
			and 	id_type $type
			and	cand.id_cand = cand_epr.id_cand
			and 	id_epr = 3
			and	id_session = $sess";
	if ($ctre != "0")
		$requete .= "	and rne_ctr = '$ctre'";

	$requete .= "	order by rne_ctr,date_epr,heure,nom,pre";
	$this->requete($requete);
}

function list_eval($sess,$typec,$ctre,$date,$heure)
{
	if ( $typec == "i" )
                $type = "in (2,3)";
        else if ( $typec == "s" )
                $type = "= 1";
	$requete = " 	select 	numins,nom,pre
			from 	cand
			where	id_session = $sess
			and 	cand.deleted <> 'o'
			and	id_type $type
			and 	id_cand in 
				(select id_cand 
				from 	cand_epr
				where 	id_epr = 3
				and	date_epr = '$date'
				and	heure = '$heure')
			and 	id_cand in 
				(select id_cand 
				from 	cand_exa
				where	rne_ctr = '$ctre')
			order by nom,pre";
//echo $requete;
	$this->requete($requete);

--------------------------------------------------------------------------


J'avais pensé à un rajout comme ceci (voir un peu plus bas) mais je ne sais pas trop si cela est bon et comme je dois mettre les fichiers sur le serveur pour tester (pas d'environnement de développement sur le poste....) je préfére ne pas trop tester à l'aveuglette :

Code:
	echo "<tr>\n<th>Inclure les candidats déjà affectés (TEST) : <input type='checkbox' name='inc_aff' value='1'";
	if ($inc_aff == "0") echo " checked";
	echo "onSubmit='return CheckCase()'></th>\n</tr>\n";
	echo "</form>\n";

	echo "<form name='formaff'>\n";
	echo "<input type='hidden' name='candsel' value='$candtype'>\n";
?>
	<tr><td id="menuinfo" colspan="2">
	<select name='centreo'>
	</select>
	</td></tr>
	<tr><td id="menuinfo" colspan="2">
	|<br>|<br>V
	</td></tr>
	<tr><td id="menuinfo" colspan="2">
	<select name='centree'>
        </select>
	</td></tr>
	<tr><td id="menuinfo" colspan="2">
	<input type='button' value='Affecter' onclick='list_number()'>
	</td></tr>
	</table>
	</form>
	<script src="ajax/ajaff.js">
	</script>
	<script>
		makeRequest("ajax/ajreqaff.php","?sess=<?php echo $_SESSION["exam"]; ?>&candtype=<?php echo $candtype; ?>")
		function CheckCase()
		{ 
      if (document.formaff.inc_aff.checked == false)
      {
				function list_number()
				{
					seletab = window.document.formaff.centreo.options[window.document.formaff.centreo.selectedIndex].text
					candtype = window.document.formaff.candsel.value
					pos1 = seletab.indexOf("(")+1
					pos2 = seletab.indexOf(")")
					newsel = seletab.substring(pos1,pos2)
					affnb = prompt("Nombre d'élève à affecter / "+newsel,newsel)
					if (affnb <= newsel)
					{
						rneori = window.document.formaff.centreo.options[window.document.formaff.centreo.selectedIndex].value
						rneexa = window.document.formaff.centree.options[window.document.formaff.centree.selectedIndex].value
						makeRequest("ajax/ajreqaff.php","?ctro="+rneori+"&ctre="+rneexa+"&nbaff="+affnb+"&sess=<?php echo $_SESSION["exam"]; ?>&user=<?php echo $_SESSION["user"]; ?>&candtype="+candtype)
					}
					else
						alert("Impossible d'affecter plus de candidats que le nombre de non-affectés")
				}
				else
				{
					seletab = window.document.formaff.centreo.options[window.document.formaff.centreo.selectedIndex].text
					candtype = window.document.formaff.candsel.value
					pos1 = seletab.indexOf("(")+1
					pos2 = seletab.indexOf(")")
					newsel = seletab.substring(pos1,pos2)
					affnb = prompt("Nombre d'élève à affecter / "+newsel,newsel)
					if (affnb <= newsel)
					{
						rneori = window.document.formaff.centree.options[window.document.formaff.centree.selectedIndex].value
						rneexa = window.document.formaff.centree.options[window.document.formaff.centree.selectedIndex].value
						makeRequest("ajax/ajreqaff.php","?ctro="+rneori+"&ctre="+rneexa+"&nbaff="+affnb+"&sess=<?php echo $_SESSION["exam"]; ?>&user=<?php echo $_SESSION["user"]; ?>&candtype="+candtype)
					}
					else
						alert("Impossible d'affecter plus de candidats que le nombre de non-affectés")
				}
			}
	</script>
<?php
}
--------------------------------------------------------------------------


Une petite image pour que vous voyiez à quoi cela ressemble :




--------------------------------------------------------------------------


Comme vous pouvez le voir, j'ai déjà rajouter la cose à cocher (pump it up !!! ) mais c'est bien tout ce que j'ai pu faire :pasmafaufe8:

Voilà, j'espère vraiment que vous pourrez m'aider et à très bientôt j'espère.

Cordialement.
__________________
DAT Wii - PS3 - X360 - WiiWare - VC - XBLA - GC pour Offline List
Ripkits FULL FR pour jeux PSP
Jeux StarSing
Aucune demande par MP ne sera acceptée ! Le forum est là pour ça !

Dernière modification par PsyKos ; 30/08/2008 à 22h12.
PsyKos est déconnecté   Réponse avec citation
Vieux 29/08/2008, 23h20   #2 (permalink)
Profil
Technic'Admin
Ancienneté  79%
Ancienneté 79%
 
Avatar de jack
 
Date d'inscription: mai 2006
Localisation: LV-426
Âge: 36
Pays :
Messages: 17 178
Téléchargements: 4
Uploads: 0
Merci: 7
Remercié 407 fois dans 358 Posts
Par défaut

La base de ton truc ça va être donc :

Formulaire >> recuperation formulaire via php >> modification base de données.

Alors deja le premier truc a faire je pense pour toi c'est te visualiser le fonctionnement de leur base SQL (je sais pas ce qu'ils utilisent ... ça peut être du MySQL ... MSSQL ... PostGre ...) et donc generer la commande qui va te permettre de modifier ton tuple. Apres on verra le reste
__________________
Hello IT ... Have you tried to turn it off and on again ? ... The button on the side, is it glowing ? ... Yeah you need to turn it on ! ... The button turns it on ? ... You DO know how a button works don't you ! ?
jack est déconnecté   Réponse avec citation
Vieux 06/09/2008, 12h57   #3 (permalink)
Profil
Dieu tout puissant
Ancienneté  92%
Ancienneté 92%
 
Avatar de FreeZou
 
Date d'inscription: mai 2006
Âge: 37
Pays :
Messages: 2 853
Téléchargements: 0
Uploads: 0
Merci: 5
Remercié 116 fois dans 60 Posts
Par défaut

Autant j'ai compris plus ou moins le probleme, autant je vois pas à quoi te sert la checkbox dans l'histoire ?

c'est pour un tri ?
FreeZou est déconnecté   Réponse avec citation
Vieux 11/09/2008, 07h10   #4 (permalink)
Profil
Membre
Ancienneté  83%
Ancienneté 83%
 
Avatar de PsyKos
 
Date d'inscription: mai 2006
Localisation: Québec :love:
Âge: 41
Genre : Homme
Pays :
Messages: 4 962
Téléchargements: 0
Uploads: 0
Merci: 27
Remercié 76 fois dans 28 Posts
Par défaut

Citation:
Envoyé par FreeZou Voir le message
Autant j'ai compris plus ou moins le probleme, autant je vois pas à quoi te sert la checkbox dans l'histoire ?

c'est pour un tri ?
Bonjour à tous, désolé de ne pas avoir répondu mais j'ai pas mal de boulot en ce moment et j'en avais presque oublié cette partie.

Pour répondre à FreeZou, oui, c'est exactement pour faire un tri. En fait, les examinateurs ne se trompent pas toutes les 5 minutes quand même et cela est plus pratique de cocher une case pour faire apparaitre les candidats déjà affectés plutôt que de faire chercher ledit candidat dans une liste plus importante par l'examinateur.
__________________
DAT Wii - PS3 - X360 - WiiWare - VC - XBLA - GC pour Offline List
Ripkits FULL FR pour jeux PSP
Jeux StarSing
Aucune demande par MP ne sera acceptée ! Le forum est là pour ça !
PsyKos est déconnecté   Réponse avec citation
Réponse
Précédent   Metagames > Discussions Générales > Informatique > Développement


Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Rajout de RAM |GreatTeacher| Informatique 13 05/06/2007 07h46
[lol]Rajout d'une Antenne PSP Wifi ordimans90 Playstation Portable 40 02/07/2006 14h33
Rajout de sous titres Invité Xbox 7 25/04/2005 18h09
rajout de skins sur evox Invité Xbox 8 19/05/2004 18h52


Fuseau horaire GMT +1. Il est actuellement 03h06.


© 2003-2018 MetaGames. Tous droits réservés.