Options d'un select html composé par 2 champs concaténés.
Résolu
christian82000
Messages postés
47
Date d'inscription
Statut
Membre
Dernière intervention
-
lugdanum Messages postés 116 Date d'inscription Statut Membre Dernière intervention -
lugdanum Messages postés 116 Date d'inscription Statut Membre Dernière intervention -
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:
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 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:
- Options d'un select html composé par 2 champs concaténés.
- Supercopier 2 - Télécharger - Gestion de fichiers
- Editeur html - Télécharger - HTML
- Windows 11 afficher d'autres options - Guide
- 2 ecran pc - Guide
- Concatener 2 cellules excel - Guide
2 réponses
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 ?
@+
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 ?
@+
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