Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Liste déroulante

marygil, le mercredi 9 juillet 2008 à 07:14:15
Bonjour,
J'ai une liste déroulante dans mon formulaire, provenant de ma BDD.
Lorsque je sélectionne un choix, je souhaite qu'il reste par défaut, jusqu'à ce que j'en choisisse un autre.
Merci beaucoup de votre aide.

<p>
<label for="add-bureau">Bureau :</label>

<?php
$sql="show columns from users like 'user_bureau'";
$result = DbConnection::select( $sql );
if( DbConnection::hasError() )
{
$error = DbConnection::getError();
}
if( $result )
{
$type=mysql_result($result,0,'Type');
$type=substr($type,5,strlen($type)-5-2);
$resp=split("','",$type);
echo "<select name='bureau' id='add-bureau'>";
echo "<option value='-1'>--liste du bureau--</option>";

foreach( $resp as $row )
{
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?>
</p>
Configuration: Windows XP
Internet Explorer 7.0
Répondre à marygil  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alkaaran, le mercredi 9 juillet 2008 à 12:24:22
Salut marygil,

Vers quoi ton formulaire envoie t'il ses données ? Une nouvelle page ? La même ? ... ?
Répondre à Alkaaran

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le mercredi 9 juillet 2008 à 12:55:44
Bonjour et merci pour ta réponse,

Vers une nouvelle page...
Répondre à marygil

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alkaaran, le mercredi 9 juillet 2008 à 14:02:24
Plusieures options s'offrent à toi, mais elles convergent toutes vers le même point : il faut enregistrer quelque part la valeur de ton select pour la recuperer plus tard... Pour cela :

- Si tu veux que la valeur du select ne soit affectées qu'en fonction de l'utilisateur : utilise un cookie ou une variable de session
- Sinon tu peux l'enregistrer dans la base de données ou dans un fichier externe
- Et enfin tu peux la passer en paramètres avec ton formulaire...

Ces solutions sont classées par ordre de simplicité, je trouve la technique de la variable de session la plus simple à mettre en place
Répondre à Alkaaran

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[o.o]REplay, le mercredi 9 juillet 2008 à 14:26:57
Bonjour,

Tu peux aussi mettre un champ hidden dans ton form,
et avant d'afficher a nouveau ton formulaire tu fais:

$default = "--liste du bureau--";

if(isset($_POST['le nom de ton champ hidden']))
$default = $_POST['le nom de ton champ hidden'];

echo "<option value='-1'>".$default."</option>";

:)

++
~• Coin Coin •~
replay.homeunix.com
Répondre à [o.o]REplay

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le mercredi 9 juillet 2008 à 17:03:03
Bonjour

Un grand merci à toi [o.o]REplay pour ta réponse très concluante, c'est super ça marche nickel, mille merci. Et merci aussi à Alkaaran.
Je peux me permettre STP de te demander encore une petite chose ?
J'ai donc fini mon site pour mon association et il me reste le formulaire de contact à intégrer au site, avant de pouvoir le mettre en ligne.
J'en ai fait un avec un logiciel "créaform"que j'ai arrangé suivant mes besoins mais je sais pas comment l'intégrer à mon site, si toute fois tu peux encore m'aider?
Ca m'a créé 3 fichiers "envoi.php5" "mimemail.php5" "formulaire.js" je sais pas quoi en faire je voudrais mettre ce formulaire dans ma page contacts.
Merci pour ta disponibilité.
Répondre à marygil

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[o.o]REplay, le mercredi 9 juillet 2008 à 18:07:56
Aucune idée, jamais touché

Daprés moi envoie.php5 utilise les autres pages.
Essai de n'afficher que ce fichier pour voir ce que ca fait.
un include ou require d'une de ces pages devrai suffire, sinon lis l'aide de creaform, ca te sera surement plus util que moi :)

Bonne soirée.
~• Coin Coin •~
replay.homeunix.com
Répondre à [o.o]REplay

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le mercredi 9 juillet 2008 à 22:08:37
Bonjour et merci,

Juste un petit blème concernant mon formulaire.
En fait j'avais fait un test avec les données de ton message mais sur le coup j'ai pas fait attention.
A savoir: comme m'a liste déroulante commence par "président" en faisant le test j'ai dit c'est bon ça marche mais en fait ça n'affiche que le premier mot de la liste et non celui que j'ai sélectionné. (c'est déjà un grand pas)
C'est "ballot" autant pour moi, si toute fois tu peux m'aider pour finir ce bazard ?
Merci beaucoup
Répondre à marygil

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[o.o]REplay, le jeudi 10 juillet 2008 à 08:28:08
Je n'ai pas compris.

En fait il ne faut rien changer à ton code précédent, juste les trois lignes que je t'ai donné, tu les rajoutes juste avant ton formulaire: Pr le premier choix du formulaire, si il ya une variable post, tu la met en choix séléctionné, sinon tu met la valeur par défaut, le rèste du formulaire est identique. ~• Coin Coin •~
replay.homeunix.com
Répondre à [o.o]REplay

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le jeudi 10 juillet 2008 à 09:15:31
Bonjour,

Je te remercie de ta réponse, mais malheureusement je n'arrive pas à y faire fonctionner comme il le faudrait.

Ma liste déroulante ça donne ça:
--liste du bureau--
Président
vice-président
secrétaire
secrétaire-adjoint
trésorier
trésorier-adjoint

mon formulaire ça donne ça:

<label for="add-bureau">Bureau :</label>

<?php
$sql="show columns from users like 'user_bureau'";
$result = DbConnection::select( $sql );
if( DbConnection::hasError() )
{
$error = DbConnection::getError();
}
if( $result )
{
$type=mysql_result($result,0,'Type');
$type=substr($type,5,strlen($type)-5-2);
$resp=split("','",$type);
echo "<select name='bureau' id='add-bureau'>";
echo "<option value='-1'>--liste du bureau--</option>";
foreach( $resp as $row )
{
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?>

Et quand je sélectionne par exemple "secrétaire" il faut que ça reste par défaut tant que je lui est pas donné une autre valeur.
Merci très sincéremnts si tu peux encore jeter un oeil...
Répondre à marygil

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[o.o]REplay, le jeudi 10 juillet 2008 à 10:13:03
Attend, quand tu sélectionnes secrétaire, il faut que le choix séléctionné rèste --liste du bureau-- ?? ~• Coin Coin •~
replay.homeunix.com
Répondre à [o.o]REplay

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le jeudi 10 juillet 2008 à 10:28:09
Non en fait il faut que ça reste secrétaire.....
Répondre à marygil

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[o.o]REplay, le jeudi 10 juillet 2008 à 11:05:21
echo "<select name='bureau' id='add-bureau'>";

if(isset($_POST['le nom de ta variable']))
echo "<option value=\" ".$_POST['le nom de ton champ hidden']."\">\" ".$_POST['le nom de ton champ hidden']."\" </option>";

else
echo "<option value='-1'>--liste du bureau--</option>";

foreach( $resp as $row )
{
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?> ~• Coin Coin •~
replay.homeunix.com
Répondre à [o.o]REplay

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le jeudi 10 juillet 2008 à 16:50:16
Merci encore une fois pour tes réponses,

Je ne sais pas ce qui se passe, mais je n'arrive pas à faire fonctionner mon "bazard".
Ca me fait Chiééééééééééééééééééééééééééééééé

Peut-être à plus tard si toute fois tu a un autre moment de dispo.
Merci
Répondre à marygil

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le jeudi 10 juillet 2008 à 22:44:06
Bonjour,
Je vous envoi ma page si vous pouvez essayer de me résoudre mon problème.
Moi j'ai vraiment tou essayer je baisse les bras.
Merci très sincérements



<?php
function dateFRA( $time )
{
setlocale( LC_TIME, "fr" );
return strftime( "%d/%m/%Y" , strtotime( $time ) );
}
session_start();
header('Content-Type: text/html; charset=ISO-8859-1');
if( isset( $_SESSION['user_id'] ) && isset( $_SESSION['user_name'] ) )
{
require_once('../conf/config.php5');
require_once('../lib/dbConnection.php5');
require_once('../lib/membres.class.php5');
if( isset( $_GET['do'] ) )
{
$do = $_GET['do'];
switch( true )
{
case( $do === 'delete' ):
if( isset( $_GET['user_id'] ) && isset( $_GET['user_name'] ) )
{
$id = (int) $_GET['user_id'];
$name = urldecode( $_GET['user_name'] );
?>
<form method="post" action="index.php5?cat=sorties&page=membres">
<fieldset>
<legend>Supprimer un membre</legend>
<p>
<input type="hidden" name="do" value="delete" />
<input type="hidden" name="id" value="<?php echo( $id ); ?>" />
</p>
<p>Le membre suivant va être supprimé définitivement :</p>
<p><?php echo( $name ); ?></p>
<p>Souhaitez-vous continuer ?</p>
<p>
<input type="submit" value="Oui" />
<input type="button" onclick="displayBox('requests/membres.php5?do=add', 'box'); return false" value="Non" />
</p>
</fieldset>
</form>
<?php
}
else
{
echo( '<p class="error">L\'identifiant n\'est pas déterminée.</p>' );
}
break;

case( $do === 'edit' ):
if( isset( $_GET['user_id'] ) )
{
$id = (int) $_GET['user_id'];
$user = Membres::getOne( $id , true );
?>
<form action="index.php5?cat=sorties&page=membres" method="post" >
<fieldset>
<legend>Modifier un membre</legend>
<p>
<input type="hidden" name="do" value="update" />
<input type="hidden" name="id" value="<?php echo( $id ); ?>" />
</p>
<p>
<label for="add-nom">Nom :</label>
<input type="text" name="nom" id="add-nom" value="<?php echo( $user->user_name ); ?>" />
</p>
<p>
<label for="add-adress">Adresse :</label>
<textarea id="add-adress" name="adress"><?php echo( stripslashes( $user->user_adress ) ); ?></textarea>
</p>
<p>
<label for="add-tel1">Téléphone 1 :</label>
<input type="text" name="tel1" id="add-tel1" value="<?php echo( $user->user_tel1 ); ?>" />
</p>
<p>
<label for="add-tel2">Téléphone 2 :</label>
<input type="text" name="tel2" id="add-tel2" value="<?php echo( $user->user_tel2 ); ?>" />
</p>
<p>
<label for="add-mail">Courriel :</label>
<input type="text" name="mail" id="add-mail" value="<?php echo( $user->user_mail ); ?>" />
</p>
<p>
<label for="add-pupitres">Pupitre :</label>

<?php
//menu déroulant pour le type de pupitres
$sql="show columns from users like 'user_pupitres'";
$result = DbConnection::select( $sql );
if( DbConnection::hasError() )
{
$error = DbConnection::getError();
}
if( $result )
{
$type=mysql_result($result,0,'Type');
$type=substr($type,5,strlen($type)-5-2);
$resp=split("','",$type);
echo "<select name='pupitres' id='add-pupitres'>";
echo "<option value='-1'>--liste pupitres--</option>";
foreach( $resp as $row )
{
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?>
</p>
<p>
<label for="add-membres">Membre :</label>

<?php
//menu déroulant pour le type de membres
$sql="show columns from users like 'user_membres'";
$result = DbConnection::select( $sql );
if( DbConnection::hasError() )
{
$error = DbConnection::getError();
}
if( $result )
{
$type=mysql_result($result,0,'Type');
$type=substr($type,5,strlen($type)-5-2);
$resp=split("','",$type);
echo "<select name='membres' id='add-membres'>";
echo "<option value='-1'>--liste membres--</option>";
foreach( $resp as $row )
{
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?>
</p>
<p>
<label for="add-admission">Admission :</label>
<input onclick="ds_sh(this);" type="text" name="admission" id="add-admission" value="<?php echo( dateFRA( $user->user_admission ) ); ?>" />
</p>
<p>
<label for="add-demission">Démission :</label>
<input onclick="ds_sh(this);" type="text" name="demission" id="add-demission" value="<?php echo( dateFRA( $user->user_demission ) ); ?>" />
</p>
<p>
<label for="add-naissance">Né(e) le :</label>
<input onclick="ds_sh(this);" type="text" name="naissance" id="add-naissance" value="<?php echo( dateFRA( $user->user_naissance ) ); ?>" />
</p>
<p>
<label for="add-bureau">Bureau :</label>

<?php
$sql="show columns from users like 'user_bureau'";
$result = DbConnection::select( $sql );
if( DbConnection::hasError() )
{
$error = DbConnection::getError();
}
if( $result )
{
$type=mysql_result($result,0,'Type');
$type=substr($type,5,strlen($type)-5-2);
$resp=split("','",$type);
echo "<select name='bureau' id='add-bureau'>";
echo "<option value='-1'>--liste du bureau--</option>";
foreach( $resp as $row )
{
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?>
</p>
<p>
<label for="add-responsable">Responsable :</label>

<?php
//Menu déroulant pour la liste des responsabilités
$sql="show columns from users like 'user_responsable'";
$result = DbConnection::select( $sql );

if( DbConnection::hasError() )
{
$error = DbConnection::getError();
}
if( $result )
{
$type=mysql_result($result,0,'Type');
$type=substr($type,5,strlen($type)-5-2);
$resp=split("','",$type);

echo "<select multiple name='responsable' id='add-responsable'>";
echo "<option value='-1'>--liste des responsabilites--</option>";
foreach( $resp as $row )
{
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?>
</p>
<p>
<input type="button" onclick="displayBox('requests/membres.php5?do=add', 'box'); return false" value="Annuler" />
<input type="reset" value="Effacer" />
<input type="submit" value="Modifier" />
</p>
</fieldset>
</form>
<?php
}
else
{
echo( '<p class="error">L\'identifiant n\'est pas déterminée.</p>' );
}
break;

/*case( $do==='populate'):
echo "\t\t\t".'<label for="add-user">Membre</label>'."\n";
echo "\t\t\t".'<select id="add-user" name="add-user">'."\n";
if( isset( $_GET['id'] ) )
{
$users = DbConnection::select( "SELECT `users`.`user_id`, `users`.`user_name` FROM `users` WHERE `users`.`user_id` NOT IN ( SELECT `reply`.`user_id` FROM `reply` WHERE `reply`.`question_id` = '".$_GET['id']."' ) AND `users`.`user_id` <> 0 ORDER BY `users`.`user_name` ASC" );
if( mysql_num_rows( $users ) > 0 )
{
while( $row = mysql_fetch_object( $users ) )
{
echo "\t\t\t\t".'<option value="'.$row->user_id.'">'.$row->user_name.'</option>'."\n";
}
}
else
{
echo "\t\t\t\t".'<option><aucune valeur à afficher></option>'."\n";
}
}
else
{
echo "\t\t\t\t".'<option><aucune valeur à afficher></option>'."\n";
}

echo "\t\t\t".'</select>'."\n";
break;*/

default:
echo Membres::displayAddingBox();
}
}
else
{
echo( '<p class="error">L\'action n\'est pas déterminée.</p>' );
}
}
else
{
echo( '<p class="error">Opération interdite.</p>' );
}
?>
Répondre à marygil

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alkaaran, le jeudi 10 juillet 2008 à 22:56:21
Je vois pas très bien ce qui ne va pas dans ton code, tu as des erreurs à l'exécution ? Et/Ou tout simplement le formulaire ne retient pas la selection de la liste deroulante ?
Répondre à Alkaaran

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le jeudi 10 juillet 2008 à 23:08:23
Merci pour ta réponse,
Mais y at-il une solution à mon problème ?
Parce que c'est ennuyeux que ça ne me garde pas mes paramètres, lorsque je fait modifier le membres.
A+
Répondre à marygil

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alkaaran, le vendredi 11 juillet 2008 à 10:02:42
Ok, alors dans ta page de validation de formulaire (index.php5?cat=sorties&page=membres) tu ajoute ceci :

$_SESSION['temp_selection'] = $_POST['add-bureau'] ;

Cela va insérer la valeur de ta liste déroulante dans un variable de session...

Et en suite dans ta page de formulaire, tu modifie dans ton code :

echo "<select name='bureau' id='add-bureau'>";
echo "<option value='-1'>--liste du bureau--</option>";
foreach( $resp as $row )
{
	if( $_SESSION['temp_selection'] == $row )
		echo "<option value=$row selected>$row</option>";
	else
		echo "<option value=$row>$row</option>";
}
echo "</select>";


Comme ça à l'affichage de ton formulaire, si la $row est la même que celle intégrée précédemment dans la variable de session, ça la prendra par défaut...


Maintenant, comme je ne suis pas à ta place, ca va peut etre retourner une erreur ;p, reporte la moi au cas ou :)
Répondre à Alkaaran

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le vendredi 11 juillet 2008 à 14:08:01
Bonjour,
je suis toujours dans le kaka, si tu peux jeter un oeil sur mon code?
J'ai essayé de changer "choix_par_defaut" mais rien de rien...
Je te remercie beaucoup

<label for="add-bureau">Bureau :</label>

<?php
$sql="show columns from users like 'user_bureau'";
$result = DbConnection::select( $sql );
if( DbConnection::hasError() )
{
$error = DbConnection::getError();
}
if( $result )
{
$type=mysql_result($result,0,'Type');
$type=substr($type,5,strlen($type)-5-2);
$resp=split("','",$type);
echo "<select multiple name='bureau' id='add-bureau'>";
echo "<option selected value='-1'>--liste du bureau--</option>";
foreach( $resp as $row )
{
if (choix_par_defaut)
echo "<option value=$row selected=\"selected\">$row</option>";
else
echo "<option value=$row>$row</option>";
}
echo "</select>";
}
?>
Répondre à marygil

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alkaaran, le vendredi 11 juillet 2008 à 14:21:43
Tu met quoi dans choix_par_défaut ?
Répondre à Alkaaran

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le vendredi 11 juillet 2008 à 15:17:32
je pensais mettre une valeur de la liste ?
Mais ça sélectionne entièrement la liste ?
Répondre à marygil

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le vendredi 11 juillet 2008 à 15:11:01
Ben en fait j'ai essayé beaucoup de choix mais rien n'y fait.....
Répondre à marygil

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alkaaran, le vendredi 11 juillet 2008 à 15:25:14
Fais comme je t'ai dit, modifie tes pages comme ceci : :p

- Dans ta page de validation de formulaire (index.php5?cat=sorties&page=membres) tu ajoute ceci, au début :
$_SESSION['temp_selection'] = $_POST['add-bureau'] ;

Cela va insérer la valeur de ta liste déroulante dans un variable de session...
Et en suite dans ta page de formulaire, tu modifie dans ton code comme ceci :
echo "<select name='bureau' id='add-bureau'>";
echo "<option value='-1'>--liste du bureau--</option>";
foreach( $resp as $row )
{
	if( $_SESSION['temp_selection'] == $row )
		echo "<option value=$row selected>$row</option>";
	else
		echo "<option value=$row>$row</option>";
}
echo "</select>";


Dis moi s'il y a quelquechose qui te dérange ou que tu ne comprends pas :)
Répondre à Alkaaran

23


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le vendredi 11 juillet 2008 à 15:33:46
Ben en fait c'est ça je sais pas trop ou l'insérer?

$_SESSION['temp_selection'] = $_POST['add-bureau'] ;
Répondre à marygil

24


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alkaaran, le vendredi 11 juillet 2008 à 15:47:16
$_SESSION['temp_selection'] = $_POST['add-bureau'] ;

Tu dois l'indérer dans la page qui récupère les données de ton formulaire, celle qui est définie ici :
<form action="index.php5?cat=sorties&page=membres" method="post" > 


insère le juste après ton session_start()
Répondre à Alkaaran

25


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marygil, le vendredi 11 juillet 2008 à 16:01:52
J'ai mis comme ceci au sommet de la page ??


<?php
$_SESSION['temp_selection'] = $_POST['add-bureau'] ;
Répondre à marygil

26


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs