Bonjour,
Dans le cadre de mon stage,je dois réaliser une application web permettant la gestion du planning hebdomadaire des chantiers. Je suis à un stade où je peux créer un planning (hebdomadaire) sur une page et l'afficher sur une autre. Mais l'affichage était "brut", c'est à dire, je rentrais directement le numéro de la semaine souhaité dans le code... pas très pratique pour la suite, bien que cela fonctionnait. Je souhaite donc dynamiser cette affichage.
J'ai donc une bout de code au début de la page d'affichage (page_planningChantier_select.php):
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <?php if (isset($_POST["numSemaineAffichage"])) { //Si l'utilisateur souhaite voir une semaine différente, après avoir cliqué sur le bouton "Précédent" ou "Suivant" $semaine = $_POST["numSemaineAffichage"]; } else { if (isset($_POST["numSemaine"])) { //Sinon si l'utilisateur vient de créer le planning d'une nouvelle semaine, elle sera affiché en priorité $semaine = $_POST["numSemaine"]; } else { //Sinon on affiche le planning de la semaine la plus ancienne en fonction de la plus ancienne date (au cas où il existe une semaine 52 et 1 sur les changements d'années) $req3 = "SELECT DISTINCT MIN(numSemaine) FROM planningChantier WHERE dateJour = MIN(dateJour)"; try{ $stmt3 = $pdo->prepare($req3); $stmt3->execute(); $semaine = $stmt3->fetch(PDO::FETCH_ASSOC); } catch(Exception $e){ print "Erreur ! ".$e->getMessage(). "<br/>"; } } } ?> <body> <div id="btnSemaine"> <form method="POST" action="page_planningChantier_select.php"> <?php echo "<button type='submit' name='numSemaineAffichage' value='".$semaine - 1."'> Précédente </button>"; echo "<button type='submit' name='numSemaineAffichage' value='".$semaine + 1."'> Suivant </button>"; ?> </form> </div>
Dans un premier, mes conditions:
-La première vérifie si l'utilisateur à cliqué sur un des boutons (Précédent ou Suivant) qui envoie leur valeurs pour l'assigner à la variable $semaine. Cette variable contient le numéro de la semaine et sert de "value" aux boutons.
-Si ce n'est pas le cas, je vérifie si l'utilisateur vient de créer un planning. $_POST["numSemaine"] étant envoyé par la page de création vers le script qui gère l'enregistrement dans la bdd. A la fin de ce script, est présent une balise header devant amener à la page d'affichage. Ce passage est peut-être erroné, vous le verrez par la suite.
-Sinon, je récupère le numéro de la semaine la plus ancienne pour afficher le planning correspondant en premier
Au chargement de ma page d'affichage, j'obtient le message d'erreur suivant:
(la ligne 34, correspond au premier boutton)
Le message d'erreur pourtant clair je n'arrive pas à le corriger, une idée ?
Ensuite, la balise "header" du script de création (planningChantier_create.php) ramenant à la page d'affichage:
header("Location: ../page_planningChantier_select.php");
Au lieu de me rediriger à page d'affichage, je reste sur la page du script avec le message d'erreur suivant:
(la ligne 84 correspond à la balise header)
Je n'ai jamais rencontré ce message d'erreur, aussi voici le bout de code de la classe planningChantier.php:
(la ligne 89 est celle de "$req =")
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function retrieve($salarie, $semaine, $jour, $creneau){ include "../include/connexion.php"; $req = "SELECT * FROM planningChantier WHERE numSalarie=".$salarie." AND numSemaine=".$semaine." AND dateJour=".$jour." AND numCreneau=".$creneau; $stmt = $pdo->query($req); $ligne = $stmt->fecth(); $this->_numSalarie = $ligne["numSalarie"]; $this->_numChantier = $ligne["numChantier"]; $this->_numVehicule = $ligne["numVehicule"]; $this->_numCreneau = $ligne["numCreneau"]; $this->_numSemaine = $ligne["numSemaine"]; $this->_dateJour = $ligne["dateJour"]; }
C'est donc après l’exécution de ce script qu'est censé reconnaître ma condition de la page d'affichage, vous savez, celle qui est sûrement erroné ? Ce script est appelé par un formulaire (sur la page de création) est vérifie si $_POST["semaine"] est renseigné et j'aimerais que cette valeur soit utilisé dans la condition pour l'affecter à ma variable $semaine afin d'afficher le planning fraîchement crée par l'utilisateur. Mais, comme expliqué ci-dessus, ma redirection ne prend pas effet et je ne peux donc savoir si ma condition pourra être vérifié.
Je suis bloqué au même point depuis hier et commence à perdre patiente, ce qui n'est pas avantageux pour résoudre des problème, j'espère donc que vos esprits frais pourront m'aider!
Si vous souhaitez plus d'informations, n'hésitez pas!
Cordialement,
Skunka.
Partager