IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Affichage et navigabilité entre planning


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut Affichage et navigabilité entre planning
    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:

    Nom : Capture.JPG
Affichages : 111
Taille : 35,8 Ko
    Nom : Capture.JPG
Affichages : 111
Taille : 14,7 Ko
    (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:

    Nom : Capture.JPG
Affichages : 117
Taille : 74,3 Ko
    (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:

    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"];
    	}
    (la ligne 89 est celle de "$req =")

    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.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pour la 1re erreur, vous devez mettre des parenthèses autour du calcul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<button type='submit' name='numSemaineAffichage' value='" . ($semaine - 1) . "'> Précédente </button>";
    et pour la 2e erreur, regardez là :
    https://php.developpez.com/faq/index...s_already_sent

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Pour une fois, voilà quelqu'un qui met... TROP d'explications !
    Le problème, c'est que ces explications ne sont pas en rapport avec le(s) message(s) d'erreur !

    2- il faut BIEN lire et comprendre le(s) message(s) d'erreur, et en tirer les BONNES informations :
    • l'intitulé de l'erreur en elle-même
    • le nom du fichier
    • le numéro de ligne

    C'est ce numéro de ligne qui indique l'emplacement (probable) de l'erreur !
    C'est donc là qu'il faut regarder en premier !!

    3- Ensuite, en fonction de l'erreur (de syntaxe ? ... ?), on consulte la documentation !


    4- Important : TOUJOURS regarder le code source généré ("Ctrl" + "U")

  4. #4
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Merci mathieu pour le lien, il s'est avéré très utile!

    Jreaux62, je suis bien du genre a vouloir expliquer au mieux et au final je me perds dans mes propres explications...
    Pour les messages d'erreur, j'ai l'habitude, j'en ai déjà eu des dizaines et des dizaines sur la même page! Mais dans ce cas précis, je n'arrivais pas à les résoudre.
    Cependant, avoir le code source sous les yeux m'a aidé à corriger des problèmes de logique et je t'en remercie pour le raccourcis!

    Il me reste un problème à gérer mais je vais délaisser la tâche à mon professeur pour sa visite de demain... Sinon il n'aura rien à se mettre sous la dent!

    Encore merci de vos réponses, elles m'ont apportées des connaissances! Problème résolu.
    Cordialement,
    Skunka
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DC]navigabilité entre les classes d'une association one-to-many
    Par tnarol dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 04/03/2008, 07h48
  2. Problème d'affichage Crystal Report entre deux machines.
    Par gwadakillah dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 20/09/2007, 14h01
  3. affichage listes différents entre IE et FF aka THE Problem
    Par trotters213 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 31
    Dernier message: 25/09/2006, 11h21
  4. Problème d'affichage de liste entre IE et FireFox
    Par slideveloppeur2006 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/07/2006, 11h07
  5. Différence d'affichage de date entre ASP et PHP
    Par berceker united dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/06/2006, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo