comment mettre à jour une page en php?

comment mettre à jour une page en php? - PHP - Programmation

Marsh Posté le 18-05-2006 à 17:07:30    

Bonjour, je suis actuellement en trian de faire un site en php/html.
J'ai un petit soucis pour une page :  
je dois afficher une de mes tables, et le client peut choisir d'annuler un des éléments de cette page. Pour cela, il faut qu'une fois cette annulation validée, la page se réaffiche en tenan tcompte des changements....
 
voici mon code :  
 
<?
session_start();
?>
<html>
 <head>
  <title>caddie final</title>
  <style type="text/css" media="screen">@import "style2.css";
   
  </style>
  </script>
 </head>
 
 <body>  
  <form method="POST" action="caddieFinal.php">
  <?php include "db.class";
   
  if(!isset($_SESSION['pseudo']))  
   {
   echo "<form method=\"POST\">";
   echo '<center><b>Vous n\'êtes pas autoris&eacute; &agrave; acceder à cette zone.</b></center>
   <br><center><b>Vous devez d\'abord vous inscrire et entrer dans la partie "Espace membres".</b></center> ';
  ?>
    <br>
    <br>
  <?php
    echo '<center><input type="button" name="retour" class="bouton" value="Retour" onClick="self.location.href=\'http://127.0.0.1/icilestests/accueil2essai.php\'"></center>';
    exit;
   }
   else
    echo'Bienvenue';
  ?>  
  <table width=100% align="center">
  <tr><td>
  <?php
   echo "<center><b><u>Voici le contenu de mon caddie virtuel : </u></b></center>";
   echo "<br/><br/>";
   
   echo "<table width=50% align=center border=3 bgcolor='yellow' >\n";
   echo "<th>Genre</th><th>titre de l'article</th><th>Nom de l'auteur</th><th>Collection</th><th>Parution</th><th>Langue</th><th>Prix</th><th>Etat</th><th>Suppression</th>";
   
   $pseudo=$_SESSION['pseudo'];
   
   $req=DB::select("select * from reservation where pseudo='$pseudo'" );
   for ($i=0;$i<count($req);$i++){
    $a=$req[$i];
    $id=$a->id;
    $art=DB::select("select * from article where id='$id'" );
     
    for($j=0;$j<count($art);$j++){
     $b=$art[$j];
     echo "<tr>";
     echo "<td align=\"center\">$b->genre </td>\n";
     echo "<td align=\"center\">$b->titre </td>\n";
     echo "<td align=\"center\">$b->auteur </td>\n";
     echo "<td align=\"center\">$b->collection </td>\n";
     echo "<td align=\"center\">$b->parution </td>\n";
     echo "<td align=\"center\">$b->langue </td>\n";
     echo "<td align=\"center\">$b->prix </td>\n";
     echo "<td align=\"center\">$b->etat </td>\n";
     echo "<td align=\"center\"><input type=\"radio\" name=\"id\" value=\"".$a->id."\"></td>\n";
    }
   }
   
   echo "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
    <td><input type=\"submit\" name=\"annulation\" value=\"Valider l'annulation\" </td>";
 
if (isset($_POST['annulation'])){
   //pour annuler un article :  
   //pour cela il faut recupérer lid de l'article sélectionné ainsi :  
    $id2=$_POST['id'];
   //(ce $_POST['id'] sera récupéré grace a la selection de l'article à annuler)=>tableau-liste des articles réservés
 
    $annul=DB::update("delete * from reservation where id='$id2'" );
   //et le remettre en dispo
    $update=DB::update("update article set dispo=1 where id='$id2'" );
   //réafficher page :  
    echo "<script type=\"text/javascript\">actualiser();</script>";  
   //si annul, renvoyer sur la m page => mise a jour, sans l'article effacé
   }  
   
  ?>
     
   
   
  </table>
   
   
  <center>
  <br>
  <!--ce bouton validera une commande sans aucune annulation-->
  <input type="button" class="submit" name="valider" value="Valider la commande de tous les articles"onClick="self.location.href='http://127.0.0.1/Tests%20PHP/caddieFinal2.php'">
   
  </center>
 
 </body>
</html>
   
 
 
 
 
 
J'ai donc 2 boutons : un bouton valider la commande,et un bouton, valider l'annulation.
comment faire pour qu'une fois ce bouton annulation activé, la page se remette a jour?

Reply

Marsh Posté le 18-05-2006 à 17:07:30   

Reply

Marsh Posté le 18-05-2006 à 17:18:33    

1) utilise la balise form pour soumettre ton formulaire, parce que la, c'est un peu n'importe nawak ce que tu as fait...
2) structure ta page : une partie traitement, une partie affichage
3) le bouton sur lequel tu as appuyer envoie sa valeur (il est donc possible, via php de savoir sur quel bouton le gus a appuye)
 
Du coup, ta page devrait etre compose comme cela :

Code :
  1. <?php
  2. $boutonValiderAppuyer = (isset($_POST['valider']) && (!empty($_POST['valider']));
  3.  
  4. $boutonAnnulerAppuyer = !$boutonValiderAppuyer;
  5. // Init des variables pour le formulaire
  6. $varExemple = ''
  7. if($boutonAnnulerAppuyer == true) {
  8. // Recuperation des variables et mise a jour des variables pour le formulaire
  9. $varExemple = $_POST['varExemple'];
  10. // faire le bordel si le bouton annuler a ete choisi
  11.  
  12. } else if { $boutonValiderAppuer == true} {
  13. // faire le bordel si le bouton valider a ete choisi
  14.  
  15.  
  16. // Redirection sur la page de result
  17. header('blablabla.php');
  18. }
  19.  
  20. // Affichage du formulaire em utilisant les variables du formulaire
  21. echo "<form action='tapage.php' method='POST'>";
  22. echo "<input type='text' name='varExemple' value='$varExemple' />";
  23. echo "<input type=submit name='Valider' value='pouet'>";
  24. echo "<input type=submit name='Annuler' value='pouet2'>";
  25. ?>


 
DotClear (www.dotclear.org) utilise grosso modo cette technique pour la partie administration


Message édité par zapan666 le 18-05-2006 à 17:20:09

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 18-05-2006 à 17:21:27    

Tu as fait des choses bien moches ...
essaie de revoir la structure de ton document :s
 
caddie.php :

Code :
  1. // Traitement PHP si le formulaire a été validé (tu traites ta table)
  2. if (isset($_POST['annulation']))
  3. ...
  4. // tu affiches ta table
  5. for () {
  6. echo '<td>un champ etc ...</td>';
  7. }
  8. // tu affiches ton formulaire
  9. <form method="post" action="caddie.php">
  10. <input type="submit" name="annulation" value="annulation">
  11. <input type="submit" name="validation" value="validation">
  12. </form>

Reply

Sujets relatifs:

Leave a Replay

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