Formation PUB020 : WordPress, 2023 Liste déroulante dans un formulaire

42.2 Générer une liste déroulante à partir de la base de données


Voici quelques lignes pour vous aider à remplir une liste déroulante à partir de la base de données.

  • Les options d'une liste déroulante doivent être placées en ordre alphabétique. La requête SQL qui va chercher les données doit absolument avoir une clause ORDER BY.
  • L'attribut value de chaque balise <option> prendra la valeur u champ id.
  • L'ajout d'une option de type « Veuillez choisir... » est intéressante. On lui donnera une valeur à blanc (value = "").
  • En cas de problème avec la requête SQL, le code pourra générer un seul enregistrement du genre <option value="">Un problème empêche de retrouver les catégories</option>.

Validation côté serveur

Une fois le formulaire soumis, la validation côté serveur devra s'assurer que la valeur sélectionnée existe dans la base de données.

Il faudra donc effectuer une requête SQL pour retrouver l'identifiant dans la table de la clé étrangère.

Fichier de traitement du formulaire (PHP)

$table_categories = $wpdb->prefix . 'monprefixe_categories';
$enreg = $wpdb->get_row( $wpdb->prepare( "SELECT id FROM $table_categories WHERE id = '%d'", $_POST['categorie'] ) );
$erreur_sql = $wpdb->last_error;


// la catégorie est considérée non valide si la requête n'a pas fonctionné ou si le id n'a pas été retrouvé.
if ( "" != $erreur_sql || $wpdb->num_rows == 0 ) {
    $messageErreur .= _e( 'La catégorie sélectionnée n\'est pas valide.<br />', 'mon-domaine-de-localisation' );
}

 

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre