Optimisation interface et nombre de fichiers

Optimisation interface et nombre de fichiers - PHP - Programmation

Marsh Posté le 30-12-2010 à 12:49:05    

Bonjour,
 
Je reviens vers vous pour une autre question :
Je suis en train de passer une BD Access sous SQL avec interface HTML (donc PHP pour les requêtes).
Je m'aperçois au fur et à mesure de la création que j'utilise une multitude de pages, et j'aimerais savoir si je n'aurais pas plus simple comme méthode.  
 
Exemple :
Pour créer un stagiaire, j'utilise une page 'saisie.php' qui sert de formulaire
Le formulaire envoie les données à 'insert_stagiaire.php' pour la requête; de là j'ai un lien pour lui attribuer un stage
Le lien envoie la page 'saisie_stage.php' avec un nouveau formulaire; en fonction du type de stage, j'envoie les données soit à 'insert_stage1.php', soit à 'insert_stage2.php'
Lorsque je veux modifier un stagiaire, j'appelle la page 'modif_stagiaire.php'; avec la sélection possible
Je sélectionne le stagiaire et j'atterris sur la page 'modifier_stagiaire.php' avec le formulaire à modifier
Le formulaire renvoit ensuite 'modif_stagiaire_effectuee.php' pour la requête...
 
Bref, à force, je n'ai plus d'imagination pour les noms de pages, et je pense qu'il doit y avoir moyen d'utiliser moins de pages.
 
Merci pour vos suggestions !


Message édité par Antoine T le 30-12-2010 à 12:49:54
Reply

Marsh Posté le 30-12-2010 à 12:49:05   

Reply

Marsh Posté le 30-12-2010 à 14:10:36    

Pour le nombre de fichier tu peux joindre tout ton code dans une en utilisant
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 
Pour tes formulaires

Reply

Marsh Posté le 30-12-2010 à 14:55:39    

Si je comprends bien, je n'aurais qu'une seule page (admettons index.php) qui contiendra tous les formulaires? J'appuie sur le lien "ajouter un stagiaire" et ça me sort le formulaire adéquat? Un code du style ?
 

Code :
  1. <a href="index.php?action=ajout_stagiaire">Ajouter un stagiaire</a>
  2. <?php
  3. $action = $_GET['action'];
  4. switch ($action)
  5. {
  6.      case 'ajout_stagiaire' :
  7.      AjoutStagiaire();
  8.      break;
  9.      case 'enregistrer' :
  10.      EnregistrerStagiaire();
  11.      break;
  12. }


 
Et les fonctions seraient du style ?
 

Code :
  1. function AjoutStagiaire()
  2. {
  3. $lien = $_SERVER['PHP_SELF']?action=enregistrer;
  4. echo "<form method='POST' action='$lien'>
  5.         <input type='text' name='nom_stagiaire'>
  6.         <input type='submit' name='ajout' value='enregistrer'>
  7.         </form>";
  8. }
  9. function Enregistrer()
  10. {
  11.      $nom=$_POST['nom_stagiaire'];
  12.      $sql = "INSERT INTO stagiaire (nom) VALUES ('$nom')";
  13.      etc...
  14. }


 
Suis-je en bonne voie ou carrément à côté de la plaque?
 
Merci
 
EDIT : Je pense que ça ne doit pas être trop mal, car ça fonctionne à merveille !
Voici l'adaptation de mon code :
 

Code :
  1. <div id="menu">
  2. <?php
  3.         $lien = $_SERVER['PHP_SELF'];
  4.         echo'
  5.             <a href="'.$lien.'?action=ajout_stagiaire">Ajouter un stagiaire</a><br/>
  6.             <a href="'.$lien.'?action=modifier_stagiaire">Modifier un stagiaire</a><br/><br/>
  7.             <a href="'.$lien.'?action=rechercher_stagiaire">Recherche</a><br/>
  8.             <a href="'.$lien.'?action=consulter_stagiaire">Consulter</a><br/>
  9.             <a href="'.$lien.'?action=liste_stagiaire">Liste des stagiaires</a><br/><br/>
  10.             <a href="'.$lien.'?action=logout">Se déconnecter</a>
  11.         ';
  12. ?>
  13. </div>
  14. <?php
  15. $action = $_GET['action'];
  16. echo $action;
  17. if(isset($action))
  18. {
  19.     switch ($action)
  20.     {
  21.         case 'ajout_stagiaire' :
  22.             AjoutStagiaire();
  23.         break;
  24.         case 'modifier_stagiaire' :
  25.             EnregistrerStagiaire();
  26.         break;
  27.     }
  28. }
  29. ?>


 
Un grand merci, je vais passer de 25 fichiers à juste 2 !!!


Message édité par Antoine T le 30-12-2010 à 15:32:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed