Liste déroulante dynamique

Résolu
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012 - 26 févr. 2008 à 12:23
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012 - 27 févr. 2008 à 13:33
Bonjour à tous,

Ce code ci-dessous fonctionne correctement quand j'appelle le script php.



<select>
   <?php
$servername = 'localhost';
$userid = 'root';
$pws = '';
$liendb = mysql_connect($servername,$userid,$pws);
mysql_select_db ("gestion_it"); 
  
$SQL = "SELECT materiel FROM materiel";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
   echo "<option>".$val["materiel"]."</option>\n";
}
?>
   </select> 

Par contre quand je prends le même script php et que je l'adapte dans une page html. Désastre, j'ai le menu déroulant mais plus de données.
Y a t-il une particularité pour que le code php soit pris en compte dans l'exécution de ma page html.

<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nouvelle page 1</title>
</head>



<select>
   <?php
$servername = 'localhost';
$userid = 'root';
$pws = '';
$liendb = mysql_connect($servername,$userid,$pws);
mysql_select_db ("gestion_it"); 
  
$SQL = "SELECT materiel FROM materiel";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
   echo "<option>".$val["materiel"]."</option>\n";
}
?>
   </select> 


</html>

Toutes les idées sont les bienvenues car cela fait déjà deux jours que j'ai sortis mes grandes rames pour trouver le pourquoi du comment.
Merci à tous

4 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 févr. 2008 à 22:30
Si tu ne ets pas de name au select aussi, ça ne va pas aider ^^
3
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
27 févr. 2008 à 13:33
Merci Evangun.


<select name="materiel">

ça sonne tout de suite mieux.
Et bien maintenant je vais pouvoir avancer dans mon code.

Génial et un grand merci.
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 févr. 2008 à 15:36
Non mais attends... me dis pas que t'as mis une extension .html à ton fichier .php...
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
26 févr. 2008 à 21:59
EUh.....et oui..novice quand tu nous tiens..
Effectivement, depuis que j'ai changé l'extension, la liste déroulante est bien alimentée avec les datas de la DB.
Je suis en fait parti d'une page HTML qui fait appel à une page PHP pour mettre à jour les données. Je regrettais de ne pas avoir des listes déroulantes....ce qui m'a obligé à ajouter du code php dans ma page..le reste tu le connais.
Par contre, je ne suis pas plus heureux pour autant...
Voici un morceau de mon code avec une zone texte html  ( imputation ) et ma liste déroulante php ( materiel). + l'appel d'un autre fichier *.php
Avant, j'utilisais name="materiel" et le fichier ticket_enregistre.php effectuait une maj dans la db sql.
Depuis l'adaptation en php, la variable materiel n'est plus active et la maj ne fonctionne plus.
------------------------------------------------------------------------------
Premier fichier:
<form action ="ticket_enregistre.php" method = "post ">
<!-- Imputation -->

 Imputation&nbsp;

 

 


<!-- materiel -->

 Matériel

 

  <select>
  <?php
     include("param.inc.php");
       $liendb = mysql_connect($host,$user,$pws);
       mysql_select_db ($database); 
       $SQL = "SELECT materiel FROM materiel";
       $res = mysql_query($SQL);
     while($val=mysql_fetch_array($res)) {
     echo "<option>".$val["materiel"]."</option>\n";
    }
  ?>
  </select> 


-------------------------------------------------------------------------------
Second fichier : ticket_enregistre.php
<?php
if (empty($_REQUEST['nom']) ||
    empty($_REQUEST['tel'])  || empty($_REQUEST['service']) ||
 empty($_REQUEST['localisation'])  || empty($_REQUEST['imputation']) ||
 empty($_REQUEST['materiel'])  || empty($_REQUEST['idmateriel']) ||
 empty($_REQUEST['detail'])  || empty($_REQUEST['level']))
die("ERREUR : Tous les champs doivent être remplis.");


$liendb = mysql_connect("localhost","root","");
mysql_select_db ("Gestion_IT");
$sql = "INSERT INTO ticket (dateticket, nom, tel, service, localisation, imputation, materiel, idmateriel, detail, level)
VALUES ('".$_REQUEST['dateticket']."', '".$_REQUEST['nom']."', '"
.$_REQUEST['tel']."', '".$_REQUEST['service']."','"
.$_REQUEST['localisation']."', '".$_REQUEST['imputation']."','"
.$_REQUEST['materiel']."', '".$_REQUEST['idmateriel']."','"
.$_REQUEST['detail']."', '".$_REQUEST['level']."')";


if (mysql_query($sql) !=false)
     print("ticket < ".$_request['nom']." > enregistré.");
  else
    print("Echec lors de la création de la demande.");
mysql_close($liendb);
?>
------------------------------------------------------------------------------
Dans la zone .$_REQUEST['materiel'] la variable n'est plus active ce qu'il fait que la maj dans la db est down.
Comment faire pour de nouveau savoir mettre à jour la db ?
Une idée ????
Merci
0