Problème avec if isset $_POST
Résolu/Fermé- If isset post
- Post it windows - Télécharger - Agendas & Calendriers
- Brouillon post instagram - Guide
- Post instagram 3 photos - Guide
- Colis china post introuvable - Forum Consommation & Internet
- Supprimer post facebook - Guide
6 réponses
7 déc. 2022 à 17:52
bonjour,
quand tu partages du code, peux-tu préciser de quelle page il s'agit? veille aussi, bien sûr, à partager un code complet.
Bonjour.
Le code vient de la 2ème page (celle qui est redirigé en fonction du bouton cliqué dans la 1ère).
La première est fonctionnelle, elle fait les redirections comme prévu, mais dans la 2ème page les boutons ne fonctionne pas (les boutons du formulaire de la 2ème page)
Oui, j'aurais souhaité le faire en plusieurs, mais dans mon cas on m'oblige de faire seulement 2 pages (Une page dans la laquelle, l'utilisateur choisi entre le bouton Ajouter et Modifier et une 2ème page dans laquelle on affichera soit un formulaire d'ajout soit un formulaire de modification du projet en fonction du bouton cliqué dans la première page).
Les formulaires s'affichent dans la 2ème page mais les boutons ne fonctionnent pas
Page1.php
<a href="page1.php"> <input type="submit" value="Ajout" value="redirection-page2-ajout" /> </div> <a> <form method="post" action="page1.php"> <input type="submit" value="Modifier" value="redirection-page2-ajout /> <form> </div>
Page2.php
<?php if(isset($_POST["redirection-page2-ajout"])){ if(isset($_POST["boutonAjoutPage2"]){ //Code bouton Ajout de la page 2 } }else if (isset $_POST["redirection-page2-modifier"]) { if(isset($_POST["boutonModifierPage2"){ //Code bouton Modifier de la page 2 } } ?>
boutonAjoutPage2 et boutonModifierPage2 sont les name des boutons.
Le code est très long (environ 400 lignes) sinon je l'aurais mis au complet.
7 déc. 2022 à 20:41
Bonjour,
Dans ta page 1, actuellement, je ne vois qu'un seul FORM .
Donc, soit tu ne nous as pas montré le code COMPLET de cette page... soit il manque un FORM pour ton bouton ajouter.
Ensuite, tu as la même VALUE dans tes deux boutons... ça peut expliquer le souci je pense...
A la limite, n'hésites pas à ajouter un var_dump($_POST) avant tes IF de ta page 2
Désolé j'avais fait une erreur dans le code de la page1 que j'ai publié.
redirection-page2-modifier et redirection-page2-ajouter c'est le name et non le value.
Sinon la page 1 fonctionne correctement et rédige la page vers la page 2 en affichant soit le formulaire d'ajout, soit le formulaire de modification en fonction du bouton cliqué.
Le problème c'est seulement au niveau de la page 2.
Les boutons de cette page ne marchent pas. En faisant le debug j'ai vu qu'on entre jamais dans ma condition
if(isset($_POST["boutonModifierPage2") et if(isset($_POST["boutonAjoutPage2"])quand on clique sur les boutons de la page .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié le 7 déc. 2022 à 23:32
Histoire que ton code soit propre, il devrait ressembler à un truc du genre
<?php //------------------------------------------------------------------------------// //toujours essayer de mettre le maximum de code php en dehors du html // au début du fichier en général. // ça facilite la maintenance de celui-ci... //------------------------------------------------------------------------------// //------------------------------------------------------------------------------// //Affichage des erreurs PHP //------------------------------------------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //------------------------------------------------------------------------------// //connexion à la bdd //------------------------------------------------------------------------------// // il doit te manquer un require ... ou le code de connexion à ta bdd. // je te laisse le remttre ici. //------------------------------------------------------------------------------// // Découpage du code en fonctions pour plus de lisibilité //------------------------------------------------------------------------------// function getPost($varName,$defaultValue=NULL) //Utilisation de l'écriture TERNAIRE ( IF/ELSE) pour récupérer les variables POST return isset($_POST[$varName]) ? $_POST[$varName] : $defaultValue; } function getProjet($noProjetChoisi){ global $conn; $sql = "SELECT NO_PROJET, NOM_PRO, MNT_ALLOUE_PRO, STATUT_PRO, DATE_DEBUT_PRO, DATE_FIN_PRO FROM TP2_PROJET WHERE NO_PROJET = " . $noProjetChoisi; $stid = oci_parse($conn, $sql); oci_execute($stid); return oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)); } function getRapports($noProjetChoisi){ global $conn; $sql = "select NOM_FICHIER_RAP, NOM_ETAT_RAP, NO_RAPPORT from TP2_RAPPORT " . "inner join TP2_RAPPORT_ETAT " . "on TP2_RAPPORT.CODE_ETAT_RAP = TP2_RAPPORT_ETAT.CODE_ETAT_RAP " . "where NO_PROJET = " . $noProjetChoisi; $stid = oci_parse($conn, $sql); oci_execute($stid); return oci_fetch_all($stid, OCI_ASSOC+OCI_RETURN_NULLS); } function getEquipes($noProjetChoisi){ global $conn; $sql = "select PRENOM_MEM, NOM_MEM, COURRIEL_MEM, MEM.NO_MEMBRE from TP2_MEMBRE MEM " . "inner join TP2_EQUIPE_PROJET EQ " . "on MEM.NO_MEMBRE = EQ.NO_MEMBRE " . "where EQ.NO_PROJET = " . $noProjetChoisi; $stid = oci_parse($conn, $sql); oci_execute($stid); return oci_fetch_all($stid, OCI_ASSOC+OCI_RETURN_NULLS); } function updateProjet($nomProjetM, $mntAlloueProjetM, $statutProjetM, $dateDebutProjetM, $dateFinProjetM ){ global $conn; if(!empty($nomProjetM) && !empty($mntAlloueProjetM) && !empty($statutProjetM) && !empty($dateDebutProjetM) && !empty($dateFinProjetM)){ $requete_update = "update TP2_PROJET(NOM_PRO,MNT_ALLOUE_PRO,STATUT_PRO,DATE_DEBUT_PRO,DATE_FIN_PRO) " . // ta requete me semble étrange mais ça fait longtemps que je n'ai pas toucher à oracle... "set NOM_PRO = :nom, MNT_ALLOUE_PRO = :mntAlloue, STATUT_PRO = :statut, DATE_DEBUT_PRO = to_date(:dateDebut, 'YYYY-MM-DD'), DATE_FIN_PRO = to_date(:dateFin, 'YYYY-MM-DD') " . "where NO_PROJET = " . $noProjetChoisi ; $stid = oci_parse($conn, $requete_update); oci_bind_by_name($stid, ":nom", $nomProjetM); oci_bind_by_name($stid, ":mntAlloue", $mntAlloueProjetM); oci_bind_by_name($stid, ":statut", $statutProjetM); oci_bind_by_name($stid, ":dateDebut", $dateDebutProjetM); oci_bind_by_name($stid, ":dateFin", $dateFinProjetM); $reponse = oci_execute($stid); oci_free_statement($stid); return $reponse; } } function updateProjet($nom, $mnt_alloue, $date_debut, $date_fin ,$statut_projet){ global $conn; $requete_insert = "insert into TP2_PROJET(NO_PROJET, NOM_PRO, MNT_ALLOUE_PRO, STATUT_PRO, DATE_DEBUT_PRO, DATE_FIN_PRO) " . "values(TP2_SEQ_PROJET.nextval, :nom, :mntAlloue, :statut, to_date(:dateDebut, 'YYYY-MM-DD'), to_date(:dateFin, 'YYYY-MM-DD')) "; $stid = oci_parse($conn, $requete_insert); oci_bind_by_name($stid, ":nom", $nom); oci_bind_by_name($stid, ":mntAlloue", $mnt_alloue); oci_bind_by_name($stid, ":statut", $statut_projet); oci_bind_by_name($stid, ":dateDebut", $date_debut); oci_bind_by_name($stid, ":dateFin", $date_fin); $reponse = oci_execute($stid); oci_free_statement($stid); return $reponse; } //------------------------------------------------------------------------------// // Récupération "propre" des variables POST et traitements //------------------------------------------------------------------------------// // le temps des tests ... echo "Variables POST : <br><pre>"; var_dump($_POST); echo "</pre>"; $btnMettreAjour = getPost('btnMettreAjour'); $OkModifierProjet = getPost('OkModifierProjet'); $btnOkAjouter = getPost('btnOkAjouter'); $mode_mise_a_jour = getPost('mode-mise-a-jour'); $noProjetChoisi = getPost('projet'); $nomProjet =""; $mntAlloueProjet = ""; $statutProjet = ""; $dateDebutProjet =""; $dateFinProjet = ""; if($noProjetChoisi){ $projet = getProjet($noProjetChoisi); // on fait appel à la fonction pour récupérer les infos $nomProjet = $projet["NOM_PRO"]; $mntAlloueProjet = $projet["MNT_ALLOUE_PRO"]; $statutProjet = $projet["STATUT_PRO"]; $dateDebutProjet = $projet["DATE_DEBUT_PRO"]; $dateFinProjet = $projet["DATE_FIN_PRO"]; } if($btnMettreAjour || $OkModifierProjet){ //Bouton OK - Mode Mise à jour $nomProjetM = getPost("nom_projet"); $mntAlloueProjetM = getPost("mnt_alloue"); $statutProjetM = getPost("statut_projet"); $dateDebutProjetM = getPost("date_debut"); $dateFinProjetM = getPost("date_fin"); $reponse = updateProjet($nomProjetM, $mntAlloueProjetM, $statutProjetM, $dateDebutProjetM, $dateFinProjetM ) if (!$reponse) { $erreurModificationProjet = "Un problème est survenue la modification. Veuillez revoir les informations saisies et reessayez"; }else{ $erreurModificationProjet = "Modification reussite"; } } //Bouton OK (Mode - Ajout) if($btnOkAjouter){ $nom_projet = getPost("nom_projet"); $mnt_alloue = (float) getPost("mnt_alloue"); $statut_projet = getPost("statut_projet"); $date_debut = getPost("date_debut"); $date_fin = getPost("date_fin"); if( $nom_projet && $mnt_alloue && $statut_projet && $date_debut && $date_fin ){ $reponse = updateProjet($nom_projet, $mnt_alloue, $date_debut, $date_fin ,$statut_projet); if (!$reponse) { $resultAjoutProjet = "Un problème est survenue lors de l'insertion. Veuillez revoir les informations saisies et reessayez"; }else{ $resultAjoutProjet = "Projet ajouté avec succès"; } }else{ $erreurAjoutProjet = "Veuillez remplir correctement tous les champs s'il vous plait"; } } ?> <!DOCTYPE html> <html> <head> <title>Un projet</title> </head> <body> <div class="main-div"> <div> <!-- Include Header --> </div> <!-- Formulaire --> <?php if($mode_mise_a_jour){ $noProjetVisibilite = ""; //Fin if(!empty($_POST["projet"]))?> <h1>MISE À JOUR DU PROJET</h1> <form method="post" action="un_projet.php"> <div> <label for="no_projet">Numéro du projet</label> <input type="text" name="no_projet" id="no_projet" value="<?=$noProjetChoisi?>" disabled /> </div> <div> <label for="mnt_alloue">Nom </label> <input type="text" name="nom_projet" id="nom_projet" value="<?=$nomProjet?>"required/> </div> <div> <label for="mnt_alloue">Montant alloué </label> <input type="number" name="mnt_alloue" id="mnt_alloue" id="mnt_alloue" value="<?=$mntAlloueProjet?>" required/> </div> <div> <label for="date_debut">Début du projet</label> <input type="text" name="date_debut" id="date_debut" value="<?=$dateDebutProjet?>" required/> </div> <div> <label for="date_fin">Fin du projet</label> <input type="text" name="date_fin" id="date_fin" value="<?=$dateFinProjet?>" required /> </div> <div> <label for="statut_projet">Statut du projet</label> <select name="statut_projet" id="statut_projet"> <option hidden><?=$statutProjet?></option> <option value="Accepté">Accepté</option> <option value="Préliminaire">Préliminaire</option> <option value="Intermédiaire">Intermédiaire</option> <option value="Final">Final</option> <option value="Terminé">Terminé</option> </select> </div> <div> <label for="rapport">Rapport</label> <select name="rapport" id="rapport"> <?php $rapports = getRapports($noProjetChoisi); foreach($rapports as $rapport){ $noRapport = $rapport["NO_RAPPORT"]; $nomFichier = $rapport["NOM_FICHIER_RAP"]; $nomEtat = $rapport["NOM_ETAT_RAP"]; echo "<option value='" . $noRapport . "'>" . $nomFichier . " " . $nomEtat . "</option>"; } ?> </select> </div> <div> <label for="equipe">Équipe</label> <select name="equipe" id="equipe"> <?php $equipes = getEquipes($noProjetChoisi); foreach($equipes as $equipe){ $noMembre = $equipe["NO_MEMBRE"]; $nom = $equipe["NOM_MEM"]; $prenom = $equipe["PRENOM_MEM"]; $courriel = $equipe["COURRIEL_MEM"]; echo "<option value='" . $noMembre . "'>" . $nom . " " . $prenom . " " . $courriel . "</option>"; } ?> </select> </div> <div> <input type="submit" value="OK" name="OkModifierProjet"/> <input type="submit" value="Annuler" name="btnAnnuler" /> </div> <p color="red"><?php $erreurModificationProjet?></p> </form> <div class="detailMem"> <a href="un_membre.php?action=detailMembre&id=<?=$session_no_membre?>" > <input type="button" value="Details membre" name="detailMembre"> </a> </div> <?php if(!$btnMettreAjour && !$OkModifierProjet){ ?> <h1>AJOUT D'UN NOUVEAU PROJET</h1> <form method="post" action="un_projet.php"> <?php empty($erreurAjoutProjet) ? "" : "<p>" . $erreurAjoutProjet . "</p>" ;?> <div> <label for="nom_projet">Nom </label> <input type="text" name="nom_projet" id="nom_projet" value=""required/> </div> <div> <label for="mnt_alloue">Montant alloué </label> <input type="number" name="mnt_alloue" id="mnt_alloue" id="mnt_alloue" value="" required/> </div> <div> <label for="date_debut">Début du projet</label> <input type="text" name="date_debut" id="date_debut" value="" pattern="^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$" required/> </div> <div> <label for="date_fin">Fin du projet</label> <input type="text" name="date_fin" id="date_fin" value="" pattern="^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$" required /> </div> <div> <label for="statut_projet$">Statut du projet</label> <select name="statut_projet" id="statut_projet"> <option hidden></option> <option value="Accepté">Accepté</option> <option value="Préliminaire">Préliminaire</option> <option value="Intermédiaire">Intermédiaire</option> <option value="Final">Final</option> <option value="Terminé">Terminé</option> </select> </div> <div> <input type="submit" value="OK" name="btnOkAjouter" /> <input type="submit" value="Annuler" name="btnAnnuler" /> </div> </form> <?php empty($erreurAjoutProjet) ? "" : "<p>" . $resultAjoutProjet . "</p>" ;?> <div class="detailMem"> <a href="un_membre.php?action=detailMembre&id=<?=$session_no_membre?>" > <input type="button" value="Details membre" name="detailMembre"> </a> </div> <?php } //Fin else if Mode Ajout?> <div> <!-- Include Footer --> </div> </div> <!-- Fin main-div --> </body> </html> <?php //Fermer la connexion à la BD oci_close($conn); ?>
Je te laisse compléter..
7 déc. 2022 à 23:29
Ton code contenait des erreurs ( et il y en a encore peut-être une ou deux (regarde mes commentaires ))
Par exemple, tu utilisais des variables avant qu'elles ne soit créées ( pour certains messages d'erreurs)
Ta requête d'insert me semble étrange
Tes IF/ELSE semblaient mal organisés
Bref,
complète le code que je t'ai donné là où j'ai mis des commentaires ( la connexion à la bdd ) et teste le.
7 déc. 2022 à 19:31
Tu dois donc prévoir du code pour faire ces différentes actions:
Si je débutais, je ferais cela en 5 pages, pour bien comprendre ce qui se passe.
Qu'as-tu prévu de faire?