Menu déroulant PHP et MySQL

Menu déroulant PHP et MySQL - PHP - Programmation

Marsh Posté le 08-12-2011 à 16:43:50    

Bonjour, je dois faire une page surlaquelle on accède à un formulaire (un champs) à compléter, ensuite on doit pouvoir afficher les dates correspondantes (à ce champs) dans un menu (elles sont dans une BDD).
J'ai donc créer le formulaire, la connexion au serveur MySQL fonctionne (je vous mets uniquement la partie PHP, il manque juste la creation du formulaire HTML surlequel on tape le numbers) :
<?php
// On récupère les valeurs de nos variables :
$numbers = $_POST['numbers'];
?>
<?php
$recherche = mysql_query("SELECT date FROM ntable WHERE numbers='$numbers'" ) ;
$result = mysql_query($recherche) ?>
 
<p> Date: <select size="1" name="date">
 
<?php
while ($row=mysql_fetch_array($result))
{
?>
<OPTION><?php echo $row[date]; ?></OPTION>
<?php
}

PS : j'ai le menu(plutôt l'erreur!) suivant (affichage de la ligne suivante plusieurs fois)
Notice: Use of undefined constant date - assumed 'date' in C:\wamp ...
 
MERCI.


Message édité par SNY7 le 08-12-2011 à 16:55:23
Reply

Marsh Posté le 08-12-2011 à 16:43:50   

Reply

Marsh Posté le 08-12-2011 à 17:21:54    

<?php echo $row[date]; ?>
 
Essaies avec <?php echo $row['date']; ?>

Reply

Marsh Posté le 08-12-2011 à 19:16:00    

En fait, j'ai le menu(plutôt l'erreur!) suivant (affichage de la ligne suivante plusieurs fois)
Notice: Use of undefined constant date - assumed 'date' in C:\wamp ... et la date à la fin de la ligne (je veux avoir uniquement la date extraite de la BDD sans le message d'erreur!).
Merci..

Reply

Marsh Posté le 09-12-2011 à 10:03:53    

Jinseikai a écrit :

<?php echo $row[date]; ?>
 
Essaies avec <?php echo $row['date']; ?>


Oui c'était bien ça merci.
Maintenant que j'ai le menu déroulant, je voudrait récuperer la date choisie. J'ai rajouter un bouton envoyer et demander l'affichage de cette date :
((Dans mon formulaire HTML, j'ai déjà mis la méthode POST et la page PHP à utiliser au début de mon programme))
<p>
<INPUT type="submit" value="Envoyer">
</p>
 
<?
$date=$_POST['date'];  
?>
<p> Date <? echo $date; ?> </p>
<?

Biensur, après date: je n'ai pas la date.

Reply

Marsh Posté le 09-12-2011 à 15:37:14    

dans ta balise <option>, faut mettre un attribut "value" avec la valeur correspondant à la date..


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-12-2011 à 22:10:06    

Maintenant que j'ai le menu déroulant, je voudrait récupérer la date choisie (de la liste). J'ai rajouter un bouton envoyer et demander l'affichage de cette date :
((Dans mon formulaire HTML, j'ai déjà mis la méthode POST et la page PHP à utiliser au début de mon programme))

Code :
  1. <p>
  2. <INPUT type="submit" value="Envoyer">
  3. </p>
  4. // Date doit être récupérer de la liste déroulante (voir programme précèdent)
  5. <?
  6. $date=$_POST['date']; 
  7. ?>
  8. <p> Date <? echo $date; ?> </p>
  9. <?


Je voudrais donc afficher la date (pour vérifier qu'on récupère bien cette dernière afin de créer une autre requête de recherche à partir de la date).


Message édité par SNY7 le 09-12-2011 à 22:12:03
Reply

Marsh Posté le 10-12-2011 à 22:25:24    

personne ne peut m'aider ?

Reply

Marsh Posté le 11-12-2011 à 10:59:06    

Ben, tu lirais un ou 2 tutos sur PHP au sujet du traitement des forms et t'apprendrais le HTML, t'irais franchement plus vite... :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-12-2011 à 14:39:30    

Je reformule les problème :

Code :
  1. <FORM method=post action="site.php">
  2. <h3><u>Choisir la réference afin d'afficher les dates des tests réalisés : :</u></h3>
  3. <TABLE BORDER=5>
  4. <TR>
  5. <TD>Entrez la réference</TD>
  6. <TD>
  7. <INPUT type=int name="reference">
  8. </TD>
  9. </TR>
  10. <TR>
  11. <TD COLSPAN=2>
  12. <INPUT type="submit" value="Envoyer">
  13. </TD>
  14. </TR>
  15. </TABLE>
  16. </FORM>
  17. <?php
  18. // Connexion à la BDD :
  19. $db = mysql_connect('127.0.0.1', 'root', '1234');  // 1
  20. mysql_select_db('bdd',$db);
  21. ?>
  22. <?php
  23. // On récupère la valeur de la reference :
  24. $reference = $_POST['reference'];
  25. ?>
  26. <?php
  27. // On lance la requete SQL suivante afin d'afficher les dates correspondantes dans une liste déroulante aux tests réalisés :
  28. $recherche = "SELECT date FROM tableref WHERE reference='$reference'";
  29. $result = mysql_query($recherche) ?>
  30. Date: <select size="1" name="date">
  31. <?php
  32. // On affiche les dates dans une liste déroulante :
  33. while ($row=mysql_fetch_array($result))
  34. {
  35. ?>
  36. <OPTION><?php echo $row['date']; ?></OPTION>
  37. <?php
  38. }
  39. ?>
  40. <?
  41. $date=$_post['date'];
  42. ?>
  43. <? echo $date; ?>
  44. <?
  45. // On ferme la BDD :
  46. mysql_close($db);
  47. ?>


Tout fonctionne jusqu'à la ligne 46 (j'ai bien les dates correspondantes au champs reference dans une liste déroulante).
Je voudrais cependant extraire la date choisie pour exécuter une autre requête sql. Le problème est que je n'arrive pas à l'extraire (j'ai penser au bouton envoyer mais ça ne marche pas).
Merci beaucoup !!!

Reply

Marsh Posté le 11-12-2011 à 20:38:27    

j'ai essayer ca mais ca me donne rien (dans la liste j'ai qu'une ligne ou sont affichés toutes la dates, la condition est cepandant respectée).
Je voudrais que les dates soient affichés sur plusieurs ligne et pouvoir récuperer la date selectionnée.

Code :
  1. // On récupère les valeurs de nos variables :
  2. $dut_serialnumber = $_POST['dut_serialnumber'];
  3. ?>
  4. <?php
  5. $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
  6. $result = mysql_query($recherche) ?>
  7. <FORM method=post action="site2.php">
  8. Date: <select size="1" name="date_start" >
  9. <OPTION><?php
  10. while ($row=mysql_fetch_array($result))
  11. {
  12. echo $row['date_start'];} ?>
  13. </OPTION>
  14. </select>
  15. <INPUT type="submit" value="Envoyer2">
  16. </FORM>


Merci beaucoup de votre aide !!!

Reply

Marsh Posté le 11-12-2011 à 20:38:27   

Reply

Marsh Posté le 12-12-2011 à 09:40:50    

Voir mon précédent post. Tu ne comprends manifestement pas comment marche ton script php avec ce qui est exécuté côté client et côté serveur...
 
ex :
ligne 7 (de ton précédent post) : <INPUT type=int name="reference">
int n'est pas un type pour un champ input. Solution : apprendre le html
 
ligne 46 (de ton précédent post) : comment espères-tu récupérer une valeur d'un form qui n'a pas encore été posté au serveur :??:
 
ligne 2 : dans quel form as-tu déclaré le champ dut_serialnumber :??:
 
Donc lis des tutos et apprends le html/js/php/sql. Tu verras que tu vas gagner du temps. Tu ne rameras plus pour faire des choses aussi basiques.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-12-2011 à 09:46:10    

N'empêche que ça fonctionne avec int, et si tu ne veut pas répondre ne réponds pas, personne t'obliges surtout si c'est pour raconter n'importe quoi ou pour dire "lis des tutos".

Reply

Marsh Posté le 12-12-2011 à 13:40:43    

Je n'arrive toujours pas à recuperer la date. J'ai aussi remarqué qu'en appuyant sur ENVOYER2, je reviens à la 1ère date (même si je selectionne les suivantes)!  
Je rappele le problème: je demande un serial_number (1er bouton ENVOYER), ensuite j'ai une liste des dates correspondantes (liste déroulante remplis grâca à une requette SQL), le but est de sélectionner une date afin de réaliser une autre requête SQL mais je n'arrive pas à récuperer la date sélectionner (quand j'appuie sur ENVOYER 2 la page se recharge uniquement).
MERCI.

Code :
  1. <FORM method=post action="site2d.php">
  2. <INPUT type="hidden" name="reference" value="<?php echo  $reference; ?>">   
  3. Date: <select name='date_start'  >
  4. <?php 
  5. while($row = mysql_fetch_array($result)) {
  6.    echo '<option>', $row['date_start'], '</option>';
  7. }
  8. ?>
  9. </select>
  10. <INPUT type="submit" value="Envoyer2">
  11. </FORM>
  12. <?
  13. $date_start = $_POST['date_start'];
  14. echo $date_start; ?>

Reply

Marsh Posté le 12-12-2011 à 14:46:06    

SNY7 a écrit :

N'empêche que ça fonctionne avec int, et si tu ne veut pas répondre ne réponds pas, personne t'obliges surtout si c'est pour raconter n'importe quoi ou pour dire "lis des tutos".


 
Ca marche avec "int" parce que ton navigateur (et les autres en général) est permissif. Mais en aucun cas ce type existe dans la norme du w3c pour la balise <input>.
 
Par ailleurs, ce forum n'est pas là pour donner des cours, ie pour répondre à des questions qui trouvent leur réponse sur l'un des très nombreux sites qui proposent des tutos sur php et le traitement des formulaires. :/ On veut bien passer du temps à aider les gens, mais il faut que eux aussi fassent des efforts. Ton topic rentre typiquement dans ce cas de figure. Par ailleurs, je t'ai donné des éléments de réponse sur la raison que ton script ne pouvait pas marcher. :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-12-2011 à 14:57:26    

J'ai cherché partout, je ne trouve rien en rapport avec ce que je veux faire. Je n'arrive pas à récuperer la valeur de la date sélectionnée par l'utilisateur dans la liste déroulante (quand j'appuie sur Envoyer2, la page se recharge et dans ma liste déroulante je me retrouve avec la 1er date!, bien que je demande l'affichage de la variable date_start, je n'ai rien ....)

Reply

Marsh Posté le 12-12-2011 à 15:18:12    

T'as cherché partout :??: Tu tapes dans Google "tutorial php formulaire liste déroulante" et tu tombes là-dessus :  
http://julp.developpez.com/php/formulaires/
 
http://www.siteduzero.com/tutoriel [...] aires.html


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-12-2011 à 16:56:20    

Oui mais la liste déroulante  extrait les valeurs de la BDD, ca s'aurait trop facile sinon ...

Reply

Marsh Posté le 12-12-2011 à 21:44:39    

Code :
  1. $dut_serialnumber = $_POST['dut_serialnumber'];
  2. ?>
  3. <?php
  4. $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
  5. $result = mysql_query($recherche) ?>
  6. <FORM method=post action="site2d.php">
  7. <INPUT type="hidden" name="dut_serialnumber" value="<?php echo  $dut_serialnumber; ?>"> 
  8. print_r($_POST);
  9. Date: <select name='date_start'  >
  10. <?php
  11. while($row = mysql_fetch_assoc($result)) {
  12.    $isSelected = ($row['date_start'] === $_POST['date_start']) ? ' selected="selected"' : null;
  13.    echo '<option value="', $row['date_start'], '"', $isSelected, '>', $row['date_start'], '</option>';
  14. } ?>
  15. <INPUT type="submit" value="Envoyer">
  16. </FORM>
  17. <?
  18. $date_start = $_POST['date_start'];
  19. echo $date_start; ?>
  20. <? echo $_POST['date_start']; ?>


Après le 1er ENVOYER j'ai : (remplissage du champs dut_serialnumber puis appuie sur envoyer)

Code :
  1. Array ( [dut_serialnumber] => tx081 [date_start]


Après le 2ème ENVOYER j'ai : (liste déroulante avec les dates affichées en fonction du serial_number, ca fonctionne bien)

Code :
  1. Array ( [dut_serialnumber] => tx081 [date_start] => 2011-07-07 13:31:00 )


--> Cela prouve que j'envoie bien la date que je sélectionne ? Je n'arrive pas cepandant à récuperer la valeur de la date sélectionnée .... !
MERCI ...

Reply

Marsh Posté le 13-12-2011 à 09:57:06    

Il faut que ton script fasse la différence entre le 1er affichage du formulaire vide et le 2ème affichage, une fois que t'as sélectionné la date. Les lignes 19 à 22 semblent montrer que tu n'as pas compris la notion de client/serveur :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 13-12-2011 à 10:54:31    

Je répète, je récupère bien le champs dut_serialnumber, parcontre lorsque je sélectionne une date je ne la récupère pas (pourtant dans l'array on voit bien les valeurs que j'envoie ....)

Reply

Sujets relatifs:

Leave a Replay

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