Conserver sélection d'un menu déroulant après une soumission

Fermé
JeremyBel - 11 févr. 2020 à 18:50
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 13 févr. 2020 à 23:16
Bonjour,

Comme le titre l'indique je cherche à savoir comment conserver la sélection d'un menu déroulant après une soumission. Je sais comment faire, il sufit de faire comme suit :
<?php 
	$selected = isset( $_POST['prenom'] ) ? $_POST['prenom'] : "" ;
	$selectedValue = 'selected="selected"';
?>

<form method="post" >
	<select name="prenom">
		<option value="Jean" <?php if( $selected == "Jean" ) echo $selectedValue ?>>Jean</option>
		<option value="Bob" <?php if( $selected == "Bob" ) echo $selectedValue ?>>Bob</option>
		<option value="Marie" <?php if( $selected == "Marie" ) echo $selectedValue ?>>Marie</option>
		<option value="Charlotte" <?php if( $selected == "Charlotte" ) echo $selectedValue ?>>Charlotte</option>
	</select>
	<br/>
	<input type="submit" value="Envoyer"/>
</form>

Cependant je cherche à le faire via une base de données MySQL. Donc au lieu de remplir à la main les value une boucle le fait.
Mon code est le suivant il fonctionne sans la conservation de la sélection de mon menu déroulant après une soumission.
Voici mon code :
	// Connexion à ma BDD
	$bdd = new PDO('mysql:host=***;dbname=***;charset=utf8', '***', '***', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
	// Récupération et affichage de données de ma base
	$info = $bdd->prepare('SELECT id, message FROM table');
	$info->execute();
	while ($donnees = $info->fetch())
	{
		echo '<div style="border:1px solid black; margin:10px; padding:5px;">';
		echo "<table><tr><td>";
		echo $donnees['id'];
		echo "</td><td>";
		echo $donnees['message'];
		echo "</td></tr></table>";
		echo '</div>';					
	}
	// Création du menu déroulant 
	echo "<select name='Liste'>
	<option>Choisir</option>";
	$num = $bdd->query("SELECT id FROM table");
	while ($id = $num->fetch())
	{
		echo "<option value='.$id[id].'>".$id['id']."</option>";
	}  
	echo "</select>";
	<input type="submit" name="Modifier">
f(isset($_POST['Modifier']))
{
	$nume = $_POST['Liste'];
	// Affiche ce que j'ai selectionné dans le menu déroulante
	echo $nume;
}

// Création d'une zone de texte affichant une donnée de ma base
<textarea name='edit'>
	<?php echo $message;?>
</textarea>
// Second bouton submit
<input name='Enregistrer' type='submit' value='Enregistrer'>
<?php
// Lorsque j'appui sur le second bouton je voudrais afficher le message de ma textarea (c'est ok) et le numéro selectionné dans mon menu déroulent (ce que je cherche à faire) 
if(isset($_POST['Enregistrer']))
{
	$newMessage = $_POST['edit'];
	echo $newMessage;
	echo $nume;

Merci par avance de votre aide
A voir également:

3 réponses

Bonjour,

Pourrais-tu me dire comment comment faire je ne connait pas beaucoup AJAX ni JSON
Le PHP me le permet pas ?

Cordialement
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 13 févr. 2020 à 23:14
Bonjour,

$selected = !empty( $_POST['prenom'] ) ? $_POST['prenom'] : "" ;

// ...



while ($id = $num->fetch()) {
    $selectedValue = $id['id'] ==  $selected  ? 'selected="selected"' : "" ;
    echo "<option value='".$id['id']."' " . $selectedValue  . ">".$id['id']."</option>";
} 


0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
13 févr. 2020 à 23:16
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 493
11 févr. 2020 à 20:01
Bonjour,

Soumettre le formulaire en Ajax en utilisant JSON ma semble une bonne piste.

Cordialement,
-1