Options d'un select html composé par 2 champs concaténés.

Résolu/Fermé
christian82000 Messages postés 47 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 17 septembre 2020 - 3 juin 2019 à 18:09
lugdanum Messages postés 116 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 4 novembre 2024 - 4 juin 2019 à 17:53
Bonjour à toutes et à tous.
A partir d'un formulaire html, je désire sélectionner dans une liste déroulante un texte contenu dans une table MySQL. Je voudrais que les options du SELECT soient composées par l'affichage de deux champs concaténés de cette même table. Jusque là tout va bien, avec la fonction CONCAT. Mais lorsque je clique sur la ligne sélectionnée, rien ne s'affiche. Je vous donne le code:
	<?php
			//Sélection des homélies à afficher

				$req = $bdd->prepare('SELECT *, CONCAT(DateCivile, ", ", DateLiturgique) AS homelie FROM homelies ORDER BY IndexHomelie DESC');
				$req->execute();
				$row = $req->fetch();
			 ?>			
, 
			<form action="Homelies.php" method ="POST">
				<select name="sermon" submit="4" class="centre">
					<?php	
						While($row)
							{	
							echo '<option>'. $row['homelie'] .'</option> ';
							$row = $req->fetch();			
							}
						$req->closeCursor();
					?>
				</select>
				<input type="submit" value="Lire" >
			</form>
		</div>
	

	<?php
		
			if(isset($_POST['sermon']))
				{
			echo	$sermons=$_POST['sermon'];	

				$req = $bdd->prepare('SELECT * FROM homelies WHERE  CONCAT(DateCivile, ", ", DateLiturgique) = ?');
				$req->execute(array($sermons));

					$row = $req->fetch();

					echo '<div class="textesAccueil"><h2 class="centre">Homélie du '.$row['DateCivile'].'</h2> <h3 class="centre">Année '.$row['AnneeLiturgique'].'<br>'.$row['DateLiturgique'].'</h3></div>'. $row['Homelie']. '<p class="auteur">' . $row['Auteur'].'</p>';

				$req->closeCursor();
				}
			else
				{
		?>


Le "echo" sous le if() permet seulement de vérifier que le POST fonctionne, ce qui est le cas. Le script tel que fourni n'est pas complet, il reste les options du "else" et la parenthèse fermante du if, mais ce n'est pas très important.
Voilà, si quelqu'un à des idées, je suis preneur.
Un grand merci par avance
Christian
A voir également:

2 réponses

lugdanum Messages postés 116 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 4 novembre 2024 41
3 juin 2019 à 19:39
Hello

J'ai pas trop compris ce que tu voulais faire finalement. En gros tu veux que lorsque la personne sélectionne une ligne dans ton Select, le contenu de ta div class="textesAccueil"... change en fonction, c'est ça ?

Si oui, je ne pense pas que tu vas avoir trop le choix que de passer par du javascript...

Tout ton code est sur la même page où bien la deuxième partie est-elle dans une autre page Homelies.php ?

@+
0
christian82000 Messages postés 47 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 17 septembre 2020
4 juin 2019 à 08:00
Bonjour Lugdanum,
Tout le code est sur la même page, dénommée Homélies.php.
Tu as bien résumé le but du code. Javascript, pourquoi pas, mais il me semblait que c'est une bête liste déroulante html dont les options sont remplies par une requête MySQL.
Ce code fonctionne si au lieu de mettre 2 champs concaténés, je n'en met qu'un, par exemple $row['DateCivile']. C'est la réunion de 2 champs pour un affichage plus clair de la liste déroulante qui pose problème (au lieu d'afficher une simple date, afficher en même temps à quoi elle correspond. Exemple : 2 juin 2019, 7éme dimanche de Pâque).
Merci de l'attention que tu portes à mon problème.
Christian
0
christian82000 Messages postés 47 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 17 septembre 2020
4 juin 2019 à 16:53
J'ai trouvé ! C'est tout simple :

<select>
<option value="x">blabla</option>
</select>


Le $_POST envoie la valeur X alors que l'internaute voyait affiché blaabla.

Une simple révision d'une propriété oubliée!
Christian
0
lugdanum Messages postés 116 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 4 novembre 2024 41
4 juin 2019 à 17:53
Hello

Ah oui effectivement ! Dès fois c'est tellement gros qu'on ne voit pas notre erreur.

@ bientôt.
0