Variables, formulaires et boucles

Variables, formulaires et boucles - PHP - Programmation

Marsh Posté le 27-01-2009 à 21:58:57    

Bonjour,
 
J'ai sur le développement d'une application php. Je m'explique, je souhaite attribué un ordre de priorité à des taches qui ont été préalablement rentrés par l'utilisateur dans une base de donnée MySQL via un formulaire.
J'affiche un tableau contenant les donnée pour chaque tache dont la priorité est NULL avec un liste déroulante avec le choix des priorités.
Mon problème est comment récupérer l'id du champ sur lequel aura cliquez l'utilisateur pour mettre à jour la BDD  (car il ne va pas forcement cliquez sur le premier) ?
 
voici mon code :
 

Code :
  1. <?php require_once("../config.php" );
  2. $db = connect_sql(); // Connexion à la base
  3. mysql_select_db('test', $db); // Selection base
  4. // Sélection des nouvelles taches
  5. $sql = mysql_query("SELECT * FROM tache WHERE prio IS NULL ORDER BY time" )or die("Erreur SQL : <br/>".mysql_error());
  6. ?>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  8. <html>
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  11. <link rel= "stylesheet" media= "screen" type= "text/css" href="../css/form.css" />
  12. <script type="text/javascript">
  13. </script>
  14. <div class="img">
  15. <table> <!-- Tableau avec les nouvelles taches  -->
  16. <tr>
  17.  <th>Date</th>
  18.  <th>Nom</th>
  19.  <th>Sujet</th>
  20.  <th>Priorité</th>
  21. </tr>
  22. <?php $i = 0;
  23. while($donnees = mysql_fetch_array($sql)) {
  24. $date = $donnees['time'];?>
  25. <tr>
  26.  <td width="200"><?php echo date('d/m/Y',$date); echo " à "; echo date('H\hi',$date);?></td>
  27.  <td width="150"><?php echo $donnees['nom'];?></td>
  28.  <td width="300"><?php echo $donnees['sujet'];?></td>
  29.  <td width="150"><form method="post">
  30.   <select name="<?php echo $i; ?>">
  31.    <option value="0">Ordre de priorité</option>
  32.    <option value="1">Faible</option>
  33.    <option value="2">Moyenne</option>
  34.    <option value="3">Urgent</option>
  35.   </select><?php
  36.   ${'id'.$i} = $donnees['id'];
  37.   $i++; ?>
  38.   <input type="submit" value="Valider"/>
  39.   </form>
  40.  </td>
  41. </tr>
  42. <?php } ?>
  43. </table>
  44. <?php mysql_close($db); ?>
  45. </div>
  46. </body>
  47. </html>


 
Si quelqu'un pourrai m'aider parce que là je nage complètement  et je vois pas trop comment m'y prendre  :??:  

Reply

Marsh Posté le 27-01-2009 à 21:58:57   

Reply

Marsh Posté le 27-01-2009 à 22:24:32    

1) il te manque le "action" dans ton form. C'est obligatoire, sans ça le navigateur ne saura pas quelle page appeler
2) t'as deux choix :
- mettre l'id dans l'adresse qui sera dans le "action"
- mettre l'id dans un input de ' type="hidden" '
 
 
En fait, c'est plus une question d'html que du php là. ;)

Reply

Marsh Posté le 27-01-2009 à 22:49:23    

Merci pour ta réponse, oui ok pour le action qui redirige vers la page de traitement (que je n'est pas encore codé) mais si je stocke mon id dans un champ hidden que je récupère sur ma page de traitement il faut que je garde un formulaire par boucle et comment je sais quel est le nom du formulaire sur lequel l'utilisateur à cliqué (c'est ma variable $i non ???) ?

Reply

Marsh Posté le 27-01-2009 à 22:50:40    

A non mais du coup on s'en fou du nom du formulaire  ou c'est moi qui a besoin d'aller au lit ...

Reply

Marsh Posté le 27-01-2009 à 22:54:52    

Principe de base : tu devrais séparer l'affichage du traitement de données, tu y verras plus clair.

Reply

Marsh Posté le 27-01-2009 à 23:29:31    

ysolal a écrit :

A non mais du coup on s'en fou du nom du formulaire  ou c'est moi qui a besoin d'aller au lit ...


T'as compris, on s'en fiche du nom du formulaire. ;)

Reply

Marsh Posté le 28-01-2009 à 08:24:02    

Merci je vais essayer et je vais séparer l'affichage du traitement car c'est vrai que sinon c'est pas trop lisible !

Reply

Sujets relatifs:

Leave a Replay

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