Php select présection et

Fermé
thenull Messages postés 12 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 10 juillet 2013 - 9 sept. 2009 à 18:12
thenull Messages postés 12 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 10 juillet 2013 - 11 sept. 2009 à 09:21
Bonjour,
J'ai deux problèmes

1) J'ai un formulaire avec un select alimenté par une base de données (table fonctbureau) dans lequel je voudrais faire apparaître en préselection une valeur venant d'une autre table (membres), et pouvoir éventuellement la modifier. Or je n'y arrive pas: si en cliquant sur le select "fonction", j'obtiens bien ma liste, la présélection que je voudrais n'est pas prise en compte: rien n'est sélectionné au départ. Est-ce possible d'y arriver ?

<?php
 require_once('../../Connections/connect.php'); //connection à la base
mysql_select_db("base"); // Sélection de la base
if (isset($_GET['modifier_membre'])) // Si on demande de modifier un membre
{
// On protège la variable "modifier_membre" pour éviter une faille SQL
    $_GET['modifier_membre'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_membre']));
// On récupère les infos du membre correspondant
    $retour = mysql_query('SELECT * FROM membres WHERE id=\'' . $_GET['modifier_membre'] . '\'') ;
    $donnees = mysql_fetch_array($retour);
<form action="menvoi.php" method="post" name="inscr" id="inscr" ><?php
  
$id = $donnees['id'];
  $fonction1 = $donnees['fonction']; // mise en variable du contenu du champ fonction
 
echo '<select name="fonction" value >';
$resfonction=mysql_query("SELECT poste FROM fonctbureau ORDER BY id_b") ;
echo '<option value= "'.$fonction1.'"></option>'; //option préselectionnée avec l'ancienne fonction (théoriquement)
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option >'.$ligne["poste"].'</option>';

}
echo '</select>';
?>
<input type="hidden" name="id" value="<?php echo $id; ?>"
</form>



2) à chaque valeur de fonction correspond dans la table fonctbureau, un numéro de fonction id_b . Je voudrais que lorsqu'on a sélectionné une fonction dans le formulaire ci dessus, on puisse obtenir la valeur de id_b dans la table fonctbureau pour l'afficher ainsi que la fonction choisie. Or ça marche pas: quand je fais echo, la valeur de $fonction s'affiche, mais pas celle de $idb. Où me suis-je trompé ?
code de ma page envoi.php
<?php
 require_once('../../Connections/connect.php'); //connection à la base
mysql_select_db("base"); // Sélection de la base

$fonction = $_POST['fonction'];
//recherche de la valeur de id_b correspondante à la fonction dans la table fonctbureau
    $retour = mysql_query('SELECT id_b FROM fonctbureau WHERE poste = "$fonction"') or die (Mysql_error()) ;//selection du champ id_b dans la table fonctbureau
    $donnees = mysql_fetch_array($retour);
// mise en variable de cette valeur
$idb = $donnees['id_b'];

echo $fonction ;
echo $idb ;
?>

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 sept. 2009 à 21:32
je suppose que le champ poste d'une des tables est identique au champ fonction de l'autre:

<?php
 require_once('../../Connections/connect.php'); //connection à la base
mysql_select_db("base"); // Sélection de la base
if (isset($_GET['modifier_membre'])) // Si on demande de modifier un membre
{
// On protège la variable "modifier_membre" pour éviter une faille SQL
    $_GET['modifier_membre'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_membre']));
// On récupère les infos du membre correspondant
    $retour = mysql_query('SELECT * FROM membres WHERE id=\'' . $_GET['modifier_membre'] . '\'') ;
    $donnees = mysql_fetch_array($retour);
	 ?>
<form action="menvoi.php" method="post" name="inscr" id="inscr" >
<?php
  
$id = $donnees['id'];
  $fonction1 = $donnees['fonction']; // mise en variable du contenu du champ fonction
 
echo '<select name="fonction" value >';
$resfonction=mysql_query("SELECT poste FROM fonctbureau ORDER BY id_b") ;
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option  value="'.$ligne["poste"].'"';
if($ligne["poste"]==$fonction1){echo 'selected';}//option préselectionnée avec l'ancienne fonction (théoriquement)
echo '>'.$ligne["poste"].'</option>';

}
echo '</select>';
?>
<input type="hidden" name="id" value="<?php echo $id; ?>">
</form>
0
thenull Messages postés 12 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 10 juillet 2013
11 sept. 2009 à 09:21
Merci
0