Cocher par défaut par rapport à l'utilisateur connecté

Signaler
-
Messages postés
2380
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
11 juin 2021
-
Bonjour,

Alors j'aimerai réussir à cocher par défaut dans ce formulaire, le nom de l'utilisateur connecté. Imaginons, je suis "test3", au lieu d'ouvrir la page où j'ai ce formulaire et de voir les taches de tous les salariés, je verrais d'abord que les tâches de "test3" car ça aura sélectionné par défaut les tâches de l'utilisateur connecté seulement, mais par la suite si je veux voir les tâches de "test2", j'aurais juste à le sélectionné.

code php du formulaire pour l'instant, je pense qu'il faudrait juste mettre une condition avec un if qui permettrai de dire, "si l'utilisateur est test3 alors affiché par défaut les tâches de test3" sauf que je ne sais pas trop faire ça :')
<form action="taches.php" method="GET">
					<select name="salarie" id="id" style="width:200px">
                    <option value="TOUS" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="TOUS"){ ?>selected<?php } ?>>Tous les salariés</option>
                    <option value="test" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test"){ ?>selected<?php } ?>>test</option>
                    <option value="test2" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test2"){ ?>selected<?php } ?>>test2</option>
                    <option value="test3" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test3"){ ?>selected<?php } ?>>test3</option>
                </select>
                <button class="btn" style="width:60px" type="submit"><img src="icones/accept.png" width="40" height="40"></button>
            </form>


Si quelqu'un pourrait m'aider ce serais vraiment sympa merci !!

3 réponses

Messages postés
15994
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021
867
bonjour,
avant de coder cela en php, as-tu déterminé le code html que tu voulais obtenir?
J'ai déjà tout mon code html et tout fonctionne parfaitement bien, je dois juste trouver comment cocher par défaut le nom du salarié connecté.
> TEMATEX
Sachant aussi que j'ai un bouton de validation qui permet d'afficher toutes les tâches du salarié coché et que une fois le salarié choisis et la recherche validé, l'URL est : tâches.php?salarie=test3

(ceci reste un exemple)
Messages postés
15994
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021
867 > TEMATEX
comment cela se fait-il en html?
<table>
			<tr>
				<td></td>
				<td><div style="text-align: center"><a href="ajoutTache.php">
				<img align="center" src="icones/add.png" width="35">
			</a></td>
				<td></td>
		</tr>
		<tr>
			<br><br>
							<td></td>
							<td>
					<form action="taches.php" method="GET">
					<select name="salarie" id="id" style="width:200px">
                    <option value="TOUS" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="TOUS"){ ?>selected<?php } ?>>Tous les salariés</option>
                    <option value="test" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test"){ ?>selected<?php } ?>>test</option>
                    <option value="test2" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test2"){ ?>selected<?php } ?>>test2</option>
                    <option value="test3" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test3"){ ?>selected<?php } ?>>test3</option>
                </select>
                <button class="btn" style="width:60px" type="submit"><img src="icones/accept.png" width="40" height="40"></button>


            </form></td>
            <td></td>
        </tr>
	</table>
		<br>
		<div class="container">
		
<table id= "table-id">
			<tr>
				<th>Code client</th>
				<th>Salarié</th>
				<th>Date</th>
				<th>Temps de réalisation</th>
			</tr>
			<?php
			foreach ($resu as $res){

				$heure = ($res['heureReal'] * 60) ;
				$minutes = ($res['minReal']);
				$totalHeures += $heure + $minutes;
			?>
			
				<tr class="trlist">
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:10%"<?php }else { ?> style="width:200px; text-align:left; padding-left:10%"<?php } ?>><a href="modifier.php?id=<?php echo $res['idd']?>" onclick="window.open(this.href); return false;"><?php echo $res['codeClient']?></a></td>
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:12%"<?php }else { ?> style="width:200px; text-align:left; padding-left:12%"<?php } ?>><?php echo $res['salarie']?></td>
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:10%"<?php }else { ?> style="width:200px; text-align:left; padding-left:10%"<?php } ?>><a href="modifierTache.php?id=<?php echo $res['id']?>" target="_blank"><?php echo strftime('%d-%m-%Y',strtotime($res['date']))?></a></td>
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:12%"<?php }else { ?> style="width:200px; text-align:left; padding-left:12%"<?php } ?>><?php echo gmstrftime( "%H h %M min", (($res['heureReal'] * 60) + $res['minReal']) * 60 )?></td>
				</tr>				
									
			<?php
			}
			?>		
		</table>
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Bonjour,

Tu n'as pas mis ton code complet ....
Et je suppose, que ce que tu veux... c'est n'afficher les données que de l'utilisateur selectionné.
Donc.. il faut intervenir sur ta variable $resu
Variable qui provient certainement d'une requête SQL ...
Requête dans laquelle tu vas devoir mettre un WHERE si tu veux "filtrer".
>
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

Non, le filtrage fonctionne et j'avais déjà quelque chose comme ça que j'avais mis en commentaire, je voudrais juste que par défaut dans la barre de recherche ce soit le nom du salarié connecté qui s'affiche avec seulement ses tâches mais que si dans la barre de recherche, par exemple le salarié "test3" décide de voir les tâches de "test2" qu'il puisse toujours.

Voici la totalité de mon code :
<body class="fond2">
	<?php 
	session_start();
	include('pdo.php');
	include('header.php');
	if ($_SESSION['niveau']=="technicien"){ 
		if($droit['techAcces']=="non"){
			header('Location:index.php?acces=interdit');
		}
	}
	if ($_SESSION['niveau']=="basique"){ 
		if($droit['basiqueAcces']=="non"){
			header('Location:index.php?acces=interdit');
		}
	}
	
	if(isset($_GET['codeClient'])){
		$stmt = $pdo->prepare('SELECT * from clients WHERE codeClient = :codeClient');
		$stmt->bindValue(':codeClient', $_GET['codeClient'], PDO::PARAM_STR);
		$stmt->execute();
		$client=$stmt->fetch();

	?>
	<div class="container" style="text-align:left; position:relative; bottom:10px">
		<a href="modifier.php?id=<?php echo $client['id']; ?>" class="retour"><img class="imagehome" src="icones/retour.png"></a>
	</div>
	<?php } ?>
	<br>
	<div style="text-align:center">
			<h1 class="h1liste">Tâches</h1>
			
	</div>

	<?php if(isset($_GET['acces']) AND $_GET['acces']=="interdit"){ ?>
		<div style="text-align:center; color:red"> Vous n'avez pas les droits d'accès à cette page ! </div><br>
	<?php } ?>
	<br>
		<?php
			if(isset($_GET['codeClient']) and isset($_GET["moisSelec"]) and isset($_GET["annee"])){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient where taches.codeClient = :codeClient AND YEAR(taches.date) = '.$_GET["annee"].' AND MONTH(taches.date) = '.$_GET["moisSelec"].' ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->bindValue(':codeClient', $_GET['codeClient'], PDO::PARAM_STR);
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

				if(isset($_GET['codeClient']) and isset($_GET["moisSelec"]) and isset($_GET["annee"]) and $_GET["annee"] == "ALL"){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient where taches.codeClient = :codeClient AND MONTH(taches.date) = '.$_GET["moisSelec"].' ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->bindValue(':codeClient', $_GET['codeClient'], PDO::PARAM_STR);
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

				if(isset($_GET['codeClient']) and isset($_GET["annee"]) and isset($_GET["moisSelec"]) and $_GET["moisSelec"] == "annee"){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient where taches.codeClient = :codeClient AND YEAR(taches.date) = '.$_GET["annee"].' ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->bindValue(':codeClient', $_GET['codeClient'], PDO::PARAM_STR);
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

				if(isset($_GET['codeClient']) and isset($_GET["annee"]) and $_GET["annee"]=="ALL" and isset($_GET["moisSelec"]) and $_GET["moisSelec"] == "annee"){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient where taches.codeClient = :codeClient ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->bindValue(':codeClient', $_GET['codeClient'], PDO::PARAM_STR);
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

			if(!isset($_GET['codeClient']) and !isset($_GET["moisSelec"]) and !isset($_GET["annee"])){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

				if(isset($_GET['salarie']) and $_GET['salarie']=="TOUS"){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}elseif (isset($_GET['salarie']) and $_GET['salarie']!="TOUS"){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient where taches.salarie=:nom ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->bindValue(':nom', $_GET['salarie'], PDO::PARAM_STR);
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}
			
			/*if(isset($_SESSION['niveau']) AND $_SESSION['niveau']!="admin"){
				$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient where taches.salarie=:nom ORDER BY taches.statut DESC, taches.date DESC');
				$stmt->bindValue(':nom', $_SESSION['nom'], PDO::PARAM_STR);
				$stmt->execute();
				$resu=$stmt->fetchALL();}*/
				
				if(isset($_GET['date']) AND ($_GET['date']="depasse")){
					$dateactuelle=date("Y-m-d");
					$stmt = $pdo->prepare('SELECT taches.codeClient, taches.salarie, taches.id, taches.date, taches.minReal, taches.heureReal, taches.statut, clients.id as idd from taches JOIN clients ON taches.codeClient = clients.codeClient where taches.salarie=:nom AND taches.statut = :statut and taches.date < :date ORDER BY taches.date DESC, taches.salarie ASC');
					$stmt->bindValue(':nom', $_SESSION['nom'], PDO::PARAM_STR);
					$stmt->bindValue(':statut', 1, PDO::PARAM_INT);
					$stmt->bindValue(':date', $dateactuelle, PDO::PARAM_STR);
					$stmt->execute();
					$resu=$stmt->fetchALL();
				}
		?>
		<table>
			<tr>
				<td></td>
				<td><div style="text-align: center"><a href="ajoutTache.php">
				<img align="center" src="icones/add.png" width="35">
			</a></td>
				<td></td>
		</tr>
		<tr>
			<br><br>
							<td></td>
							<td>
					<form action="taches.php" method="GET">
					<select name="salarie" id="id" style="width:200px">
                    <option value="TOUS" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="TOUS"){ ?>selected<?php } ?>>Tous les salariés</option>
                    <option value="test" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test"){ ?>selected<?php } ?>>test</option>
                    <option value="test2" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test2"){ ?>selected<?php } ?>>test2</option>
                    <option value="test3" <?php if(isset($_GET['salarie']) AND $_GET['salarie']=="test3"){ ?>selected<?php } ?>>test3</option>
                </select>
                <button class="btn" style="width:60px" type="submit"><img src="icones/accept.png" width="40" height="40"></button>


            </form></td>
            <td></td>
        </tr>
	</table>
		<br>
		<div class="container">
		
<table id= "table-id">
			<tr>
				<th>Code client</th>
				<th>Salarié</th>
				<th>Date</th>
				<th>Temps de réalisation</th>
			</tr>
			<?php
			foreach ($resu as $res){

				$heure = ($res['heureReal'] * 60) ;
				$minutes = ($res['minReal']);
				$totalHeures += $heure + $minutes;
			?>
			
				<tr class="trlist">
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:10%"<?php }else { ?> style="width:200px; text-align:left; padding-left:10%"<?php } ?>><a href="modifier.php?id=<?php echo $res['idd']?>" onclick="window.open(this.href); return false;"><?php echo $res['codeClient']?></a></td>
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:12%"<?php }else { ?> style="width:200px; text-align:left; padding-left:12%"<?php } ?>><?php echo $res['salarie']?></td>
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:10%"<?php }else { ?> style="width:200px; text-align:left; padding-left:10%"<?php } ?>><a href="modifierTache.php?id=<?php echo $res['id']?>" target="_blank"><?php echo strftime('%d-%m-%Y',strtotime($res['date']))?></a></td>
					<td <?php if($res['statut']==1){ ?>style="width:200px; background-color:RGBA(255,0,0,0.4); text-align:left; padding-left:12%"<?php }else { ?> style="width:200px; text-align:left; padding-left:12%"<?php } ?>><?php echo gmstrftime( "%H h %M min", (($res['heureReal'] * 60) + $res['minReal']) * 60 )?></td>
				</tr>				
									
			<?php
			}
			?>		
		</table>
		<br>
		<?php if(isset($_GET['codeClient'])){
		?>
		<h4>Total d'heures : <?php echo gmstrftime( "%H h %M min", $totalHeures * 60 )?></h4>
		<br>
		<?php } if(isset($_GET['codeClient'])){
		?>
			<br>
			<div class="container" style="text-align: right;"><a href="HTML2PDF/pdfTache.php?codeClient=<?php echo $_GET['codeClient']?>&moisSelec=<?php echo $_GET['moisSelec']?>&annee=<?php echo $_GET['annee']?>" target="_blank"><button type="button" style="width:60px" class="btn"><img src="icones/imprimante.png" style="width:30px"></button></a></div>
		<?php 
		}
		?>
	<br><br>			
	<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    
    <!--		Start Pagination -->
			<div class='pagination-container' style="margin-left: 43%">
				<nav>
				  <ul class="pagination">
            		<li data-page="prev" >
						<span> < <span class="sr-only">(current)</span></span>
					</li>
				   <!--	Here the JS Function Will Add the Rows -->
        			<li data-page="next" id="prev">
						<span> > <span class="sr-only">(current)</span></span>
					</li>
				  </ul>
				</nav>
			</div>
			<div style="text-align:left; margin-left: 250px"><span style="border:1px solid black; background-color:RGBA(255,0,0,0.4)"> A faire </span></div></td><td>
			<div style="text-align: right; margin-right: 250px">nb lignes : 
			 		<select name="state" id="maxRows" style="width: 50px">
						 <option value="5000">Toutes les lignes</option>
						 <option value="25">25</option>
						 <option value="50">50</option>
						 <option value="75">75</option>
						 <option value="100">100</option>
						</select><br>
			</div>
</div>
Messages postés
15994
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021
867 > TEMATEX
ton php va générer du html.
sais-tu quel html tu veux obtenir?
>
Messages postés
15994
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021

Juste le php va permettre de faire la séléction de salarié, ensuite l'html permet juste de faire le tableau CodeClient, salarié, Date
Messages postés
15994
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 juin 2021
867 > TEMATEX
partage le code source html de ta page, ainsi que la modification souhaitée.
Messages postés
2380
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
11 juin 2021
446
Salut,

Si la connexion des utilisateurs/salariés est gérée avec php, l'identifiant du salarié devrait alors être enregistré dans une variable de session lors de la connexion.
Il faut ensuite définir une variable "filtre salarié" avec comme valeur par défaut la variable de session et l'écraser avec le paramètre get si l'internaute fait une recherche. C'est cette variable "filtre salarié" qui doit ensuite être utilisée dans la requête sql et dans l'affichage du formulaire :
<?php
// [...] intialisation : session_start, connexion bdd, gestion des erreurs...

// la variable $filtreSalarie est utilisée dans la clause WHERE de la requête sql pour filtrer les taches par salarié
// par défaut = identifiant du salarié connecté
$filtreSalarie = isset($_SESSION['salarie']) ? $_SESSION['salarie'] : '';

// si l'utilisateur fait une recherche (taches.php?salarie=id), on change le filtre salarie
if (isset($_GET['salarie'])) {
	$filtreSalarie = $_GET['salarie'];
}

// [...] execution de la requête sql pour récupérer les taches
?>

<form action="taches.php" method="GET">
	<select name="salarie" id="id" style="width:200px">
		<option value="" <?= empty($filtreSalarie) ? 'selected' : ''; ?>>Tous les salariés</option>
		<option value="test" <?php if ($filtreSalarie == 'test') echo 'selected'; ?>>test</option>
		<option value="test2" <?php if ($filtreSalarie == 'test2') echo 'selected'; ?>>test2</option>
		<option value="test3" <?php if ($filtreSalarie == 'test3') echo 'selected'; ?>>test3</option>
	</select>
	<button class="btn" style="width:60px" type="submit"><img src="icones/accept.png" width="40" height="40"></button>
</form>


Par contre c'est pas idéal de saisir les noms des utilisateurs en dur dans le formulaire. Ca serait mieux de récupérer la liste des utilisateurs (depuis la bdd si ils sont dedans par exemple) pour construire les balises <option> avec une boucle php.

Bonne journée,
Merci beaucoup !! J'essayerai ça demain matin :)
Malheureusement, ce que tu m'as envoyé ne fonctionne pas, je ne vois pas pourquoi :/
Messages postés
2380
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
11 juin 2021
446 > TEMATEX
Sans connaitre ton code je ne vois pas pourquoi non plus ;p
Est-ce que tu as bien une variable de session $_SESSION['salarie'] qui est définie lorsque le salarié se connecte ?
Est-ce que tu as modifié les conditions if et le bind au moment de la requête sql pour utiliser la variable $filtreSalarie à la place du paramètre $_GET['salarie'] ?