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

Fermé
TEMATEX - 10 juin 2021 à 10:10
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 11 juin 2021 à 17:58
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 !!
A voir également:

3 réponses

yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
10 juin 2021 à 11:30
bonjour,
avant de coder cela en php, as-tu déterminé le code html que tu voulais obtenir?
0
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é.
0
TEMATEX > TEMATEX
10 juin 2021 à 16:06
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)
0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556 > TEMATEX
10 juin 2021 à 16:46
comment cela se fait-il en html?
0
<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>
0
jordane45 Messages postés 38319 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 4 706
10 juin 2021 à 19:34
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".
0
TEMATEX > jordane45 Messages postés 38319 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024
10 juin 2021 à 19:38
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>
0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556 > TEMATEX
10 juin 2021 à 20:47
ton php va générer du html.
sais-tu quel html tu veux obtenir?
0
TEMATEX > yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024
11 juin 2021 à 12:14
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
0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556 > TEMATEX
11 juin 2021 à 12:32
partage le code source html de ta page, ainsi que la modification souhaitée.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
10 juin 2021 à 20:15
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,
0
Merci beaucoup !! J'essayerai ça demain matin :)
0
Malheureusement, ce que tu m'as envoyé ne fonctionne pas, je ne vois pas pourquoi :/
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525 > TEMATEX
11 juin 2021 à 17:58
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'] ?
0