|
|
|
|
Configuration: Windows XP Internet Explorer 7.0
Salut marygil,
Vers quoi ton formulaire envoie t'il ses données ? Une nouvelle page ? La même ? ... ?
|
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 |
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
|
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>' ); } ?>
|
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+ |
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 :)
|
Ben en fait j'ai essayé beaucoup de choix mais rien n'y fait..... |
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 :)
|
$_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()
|