[php] changer textbox en listbox pour afficher des valeurs a modifier

changer textbox en listbox pour afficher des valeurs a modifier [php] - PHP - Programmation

Marsh Posté le 11-12-2002 à 14:39:42    

<HTML>
 
<HEAD>
   <TITLE>fiche utilisateur</TITLE>
</HEAD>
 
<BODY bgcolor="#A6CEDB">
 
<FORM name="utilisateur" action="modifbase.php3">
 
<?php
echo "<br><a href=MenuFrameAdmin.php target=_top>Retour</a>";
function OuvrirBase()
{
   $dbhost="localhost";
    $dblogin="root";
    $dbpassword="";
    $dbname="intranet";  
 
 mysql_connect($dbhost,$dblogin,$dbpassword);mysql_selectdb($dbname);
}
 
 
function FermerBase()
{
     if (mysql_close()==false)
         Erreur("Fermeture impossible de la base" );
}
 
 
 
// Ecrit un champ de formulaire dans une ligne de tableau
function EcrireLigne($col, $val, $type, $size)
{
  $champ = "<INPUT type=\"$type\" name=\"$col\"";
  $champ .= "value=\"$val\" size=\"$size\">";
 
  print("<TR>\n" );
  print("\t<TD>$col</TD>\n" );
  print("\t<TD>$champ</TD>\n</TR>\n" );
}
 
 
 
 OuvrirBase();
// recup des valeurs  
  $requete = "select util.nom as 'nom',util.prenom as 'prenom',util.fonction as 'fonction',
    util.telephone as 'telephone',site.nom as 'site',soci.nom as 'societe',serv.nom as 'service',util.mail as 'mail'
 from utilisateurs util,site,service serv,societe soci  
 where util.id_site = site.id_site and util.id_service = serv.id_service and
    util.id_societe = soci.id_societe and util.nom_id =$id and util.id_site=site.id_site";
  $result = mysql_query($requete);
  if($result==null) echo mysql_error();
  if($result == 0)
    Erreur("impossible d'effectuer la requete <BR>$requete" );
   
  $ligne = mysql_fetch_row($result);
    $txtnom = $ligne[0];
    $txtprenom = $ligne[1];
    $txtfonction = $ligne[2];
    $txttelephone = $ligne[3];
    $txtsite = $ligne[4];
    $txtsociete = $ligne[5];
    $txtservice = $ligne[6];
 $txtmail = $ligne[7];
 
// formulaire
  print("<TABLE border=2 \"0\">\n" );
 
  EcrireLigne("nom", $txtnom, "text", "10" );
  EcrireLigne("prenom", $txtprenom, "text", "10" );
  EcrireLigne("fonction", $txtfonction, "text", "20" );
  EcrireLigne("telephone", $txttelephone, "text", "5" );
  EcrireLigne("site", $txtsite, "text", "20" );  
  EcrireLigne("societe", $txtsociete, "text", "20" );
  EcrireLigne("service", $txtservice, "text", "20" );
  EcrireLigne("mail", $txtmail, "text", "30" );
   
  print("</TABLE>\n" );
   
  print("<INPUT type=\"hidden\" name=\"choix\">\n" );
  print("<INPUT type=\"hidden\" name=\"id\">\n" );
 
  print("<INPUT type=\"button\" value=\"Modifier\" onClick=" );
  print("\"window.document.utilisateur.choix.value='m';" );
  print("window.document.utilisateur.id.value=$id;" );
  print("window.document.utilisateur.submit()\">" );
 
  print("<INPUT type=\"button\" value=\"Supprimer\" onClick=" );
  print("\"window.document.utilisateur.choix.value='s';" );
  print("window.document.utilisateur.id.value=$id;" );
  print("window.document.utilisateur.submit()\">" );
 
 
 print "$texttelephone";
 
 
 
FermerBase();
?>
 
</FORM>
 
</BODY>
</HTML>
 
 
 
je veux avoir ds une listbox les informations au lieu ds une textbox ( je les ai mit en gras )
 

Reply

Marsh Posté le 11-12-2002 à 14:39:42   

Reply

Marsh Posté le 11-12-2002 à 14:54:38    

eh bin, il suffit de générer ça : donc ne pas utiliser ta fonction, ou en coder une autre..
 
<select size="lataille" name="lenom" multipleoupas>
  <option value="lavaleur">tralala</option>
  ...
  ...
</select>

Reply

Marsh Posté le 11-12-2002 à 15:02:50    

non mon truc recupere les valeurs  
 
nom,prenom,...
 
et les affcihent ds des textbox que l on peut modifier  
et qd on appuie sur modifier il fait l update de ma base  
or la site,service et societe sont des numeros  
 
je m explique voila mes tables
 
utilisateurs:
nom_id  1
nom     jean
prenom  pierre
fonction admin
telephone xxxxxxxx
id_site   1
id_service 2
id_societe 1
mail    xxxxxxx@xxxx.xx
 
site
id_site 1
nom     paris
 
service
id_service 2
nom        compta
 
societe
id_societe  1
nom         microsoft
 
 
tu comprends pourkoi je veux des listbox pour ses 3 attributs ?
 

Reply

Marsh Posté le 11-12-2002 à 15:08:47    

comprends pas, explique un peu mieux stp..
 
tu veux une liste de tout les éléments de la table ? faut faire une seconde requête, ou récupérer la liste autrement
 
tu veux afficher uniquement le nom correspondant au chiffre ? faut faire la jointure sur le champ portant le nom, mais t'auras pas le reste de la liste..

Reply

Marsh Posté le 11-12-2002 à 15:43:28    

je clique sur un lien dupond sur la frame de gauche et j ai a droite  
          ____                  
legende  |____| <=textbox    
           
  ____
|____| <= nom de dupond  
  ____
|____| <= prenom de dupond  
  ____
|____| <= fonction de dupond  
  ____
|____| <= telephone de dupond  
  ____
|____| <= site de dupond (x)
  ____
|____| <= service de dupond (x)
  ____
|____| <= societe de dupond (x)
  ____
|____| <= mail de dupond  
 
 ____
|____| <= bouton modifier  
 
 ____
|____| <= bouton supprimer
 
 
ce formulaire permet de recupere les valeurs ( nom,prenom ...)
ds des textbox pour soit les modifie ( tu remplace les champs et click bouton modifié et ca update la table ) ou les supprime ( bouton supprimer )
 
Or pour les 3 textbox (x) si je veux modifier il me faut des listbox avec les differentes valeurs deja existante des tables correspondants
 
voila tu as compris ?


Message édité par sakuraba le 11-12-2002 à 15:44:02
Reply

Marsh Posté le 12-12-2002 à 11:01:32    

:bounce:

Reply

Marsh Posté le 12-12-2002 à 11:06:21    

sakuraba a écrit :

je clique sur un lien dupond sur la frame de gauche et j ai a droite  
          ____                  
legende  |____| <=textbox    
           
  ____
|____| <= nom de dupond  
  ____
|____| <= prenom de dupond  
  ____
|____| <= fonction de dupond  
  ____
|____| <= telephone de dupond  
  ____
|____| <= site de dupond (x)
  ____
|____| <= service de dupond (x)
  ____
|____| <= societe de dupond (x)
  ____
|____| <= mail de dupond  
 
 ____
|____| <= bouton modifier  
 
 ____
|____| <= bouton supprimer
 
 
ce formulaire permet de recupere les valeurs ( nom,prenom ...)
ds des textbox pour soit les modifie ( tu remplace les champs et click bouton modifié et ca update la table ) ou les supprime ( bouton supprimer )
 
Or pour les 3 textbox (x) si je veux modifier il me faut des listbox avec les differentes valeurs deja existante des tables correspondants
 
voila tu as compris ?

ben dans ce cas, tu fais une requête de type "select distinct(champ)" sur la table ou t'as tes valeur et tu remplis ta listbox à l'aide d'une boucle sur le résultat de cette requête.
JE vois pas ce qui est si compliqué que ça.

Reply

Marsh Posté le 12-12-2002 à 11:19:37    

tu peux pas donner un exemple a partir de mon source ( en haut )  
pour societe par exemple parce que la je cale  :??:

Reply

Marsh Posté le 12-12-2002 à 11:36:41    

D'abord, c'est plus ecrireligne qu'il va faloir que t'utilises mais une fonction avec comme nom ecrireliste (par exemple). Comme ça tu pouras faire la diférence entre du texte seul et les lignes ou tu veux avoir une liste.
Du côté des paramêtres :
EcrireLigne($col, $val, $size, $table, $champ, $condition)  
 
quand a écrire la fonction elle même j'ai pas le temps de te le faire.
 
Il faut que tu génère la requête à partir de $table, $champ et $condition.
Ensuite, tu récupère les résultats et tu les utilisent pour généré chaque élément de la liste.
 
J'ai pas de doc html sous les yeux ni de temps à perdre pour rechercher un site avec une liste de ce genre, je te laisses donc chercher tout seul ce qu'il faut mettre pour obtenir un menu déroulant.

Reply

Marsh Posté le 12-12-2002 à 13:22:18    

pr generer une liste a partir de la table societé ???
pareil pr les 2 autres ?
 

Code :
  1. function GenererCat($db,$cat)
  2. {
  3. $query = "select * from categorie order by libelle asc";
  4. $db->Query($query,1,1);
  5. $ret = "<select name=\"categorie\">";
  6. $ret .= "<option value=\"0\"><< Catégories >></option>\n";
  7. while ($db->Next(1))
  8. {
  9.  $id  = $db->Get("idcategorie" );
  10.  $lib = $db->Get("libelle" );
  11.  if ($cat == $id)
  12.   $ret .= "<option value=\"$id\" selected>$lib</option>\n";
  13.  else
  14.   $ret .= "<option value=\"$id\">$lib</option>\n";
  15. }
  16. $db->Free(1);
  17.         $ret .= "</select>\n";
  18. return $ret;
  19. }


 
$db c ma classe de base données, donc tu te paluche la requete comme tu le fais dhabitude.
$cat c la categorie selectionné 0 qd il il ny en a pas, son numero qd yen a une de selectionné.
 
reste a adapter. c aps xhtml compliant ... je dois etre resté bloqué au html 4  :whistle:  
 

Reply

Marsh Posté le 12-12-2002 à 13:22:18   

Reply

Marsh Posté le 13-12-2002 à 17:18:57    

marche toujours pas

Reply

Marsh Posté le 13-12-2002 à 17:50:04    

sakuraba a écrit :

marche toujours pas  


 
voila qui est diablement explicite et qui merite quon se penche dessus  :sarcastic:

Reply

Marsh Posté le 13-12-2002 à 17:55:00    

$db c ma classe de base données, donc tu te paluche la requete comme tu le fais dhabitude.
$cat c la categorie selectionné 0 qd il il ny en a pas, son numero qd yen a une de selectionné.
 
 
je comprend pas $db et $cat ce que c est ?

Reply

Marsh Posté le 13-12-2002 à 18:23:28    


bon faut que tu ecrives une fonction :
 

Code :
  1. EcrireListe($nomduselect, $table, $champid, $champ, $condition = "1" ) 
  2. {
  3. $ret = "<select name=\"$nomduselect\">";
  4. $ret .= "<option value=\"0\"><< $champ >></option>\n";
  5. $requete = "select $champid, $champ from $table where $condition"
  6. $result = mysql_query($requete);
  7. while($res = mysql_fetch_array($result))
  8.       $ret .= "<option value=\"".$res[$champid]."\">".$res[$champ]."</option>\n";
  9. $ret .= "</select>\n";
  10. return $ret
  11. }


$condition = "1" par defaut.
 
pr info  
$db est la classe qui me sert dintermediaire avec la base mysql
$cat me permettait de selectionner une ligne ds la listbox.
 

Reply

Marsh Posté le 13-12-2002 à 18:53:59    

ok je verrai lundi au boulot je suis rentre et j ai pas envie de reprendre  
 
merci


---------------
Newsletter RCZ : inscriptions compliquées ou réceptions tardives ? Mon blog la partage sans délai. C est ici que ça se passe : https://gravelparis.com/
Reply

Sujets relatifs:

Leave a Replay

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