phpMyForm : Formulaire liste d'options (pays du monde)

Ce formulaire présente les différentes façon de proposer des listes d'options avec phpMyForm (Exemple avec la liste des 249 pays du monde).

  1. Select
  2. Select multiple
  3. Input list (list W3Schools.com)
  4. Checkbox multiples

Le formulaire

2. Select multiple

Sélectionnez un pays, ou commencez à taper des lettres...
Avec certains navigateurs, il faut cliquer 2 fois pour afficher la liste.

4. Checkbox multiples

pays_multi_check

Les différents fichiers de configurations

form_options.ini

[options]
description=Formulaire liste pays phpMyForm
emplacement=https://www.nonoweb.net/phpmyform-formulaire-liste-d-options-pays-du-monde
function_after=pmf_test_post
style_form="border: 1px solid #e1e1e1;border-radius: 5px;"
field_border=2px solid #e1e1e1
col_label=0
center=1
width=90%

form_definition.ini

[pays_select]
field_type=select
text_top="1. Select"

[pays_multi_select]
field_type=multi_select
text_top="2. Select multiple"
ini=pays_select
number_check=1
link_check=1
size=6

[pays_list]
field_type=text
text_top="3. Input list"
txt_options="opt=datalist"
text_bottom="<small><i>Sélectionnez un pays, ou commencez à taper des lettres...</i><br /><i class=\"fa fa-info-circle margin-right\" aria-hidden=\"true\"></i><em>Avec certains navigateurs, il faut cliquer 2 fois pour afficher la liste.</em></small>"
class=pmf-regular-text

[pays_multi_check]
field_type=multi_check
text_top="4. Checkbox multiples"
height=180px
number_check=1
link_check=1
col=49%

Téléchargement listes

Listes pour phpMyForm

Téléchargement des diverses listes de pays (249 pays - version française) au format propriétaire phpMyForm (qui n'est autre que le format de fichier ini).

Select (et Select multiple)

pays_select.ini

[to_select]
option="--- Sélectionner un pays ---"
[select_pays_1]
option="Afghanistan"
value="4;AFG;AF;Afghanistan"
[select_pays_2]
option="Afrique du Sud"
value="710;ZAF;ZA;Afrique du Sud"
...

La section du fichier ini [to_select] ne sert (si mentionnée) que dans le cas du select simple.
Le script renvoi une(ou plusieurs) valeur(s) de ce type : 999;XXX;XX;nom_du_pays

Input List

pays_list.ini

[list]
option[]="Afghanistan"
option[]="Afrique du Sud"
option[]="Aland (Îles)"
option[]="Albanie"
option[]="Algérie"
...

Checkbox multiples

pays_multi_check.ini

[mc_1]
option="Afghanistan"
value="4;AFG;AF;Afghanistan"
[mc_2]
option="Afrique du Sud"
value="710;ZAF;ZA;Afrique du Sud"
...

Valeur(s) renvoyée(s), voir select.

Listes HTML

Le script phpMyForm n'utilise pas ce format, mais je mets aussi à disposition 2 autres listes select et datalist au format standard HTML.

Select (et Select multiple)

pays_select.txt

<select name="" id="">
  <option value="">--- Sélectionner un pays ---</option>
  <option value="4;AFG;AF;Afghanistan">Afghanistan</option>
  <option value="710,ZAF,ZA,Afrique du Sud">Afrique du Sud</option>
  ...
  <option value="716;ZWE;ZW;Zimbabwe">Zimbabwe</option>
</select>

Input list

pays_list.txt

<datalist id="">
  <option value="Afghanistan">
  <option value="Afrique du Sud">
  ...
  <option value="Zimbabwe">
</datalist>

Autres listes

Je mets à disposition 2 autres listes au format PHP et SQL (non utilisées par phpMyForm).

Fichier PHP

Tableau array de 249 pays (code numérique, alpha2, alpha3, nom EN, nom FR).

pays.php

<?php
$pays = array(
  array(4, 'AF', 'AFG', 'Afghanistan', 'Afghanistan'),
  array(248, 'AX', 'ALA', 'Aland Islands', 'Aland (Îles)'),
  array(8, 'AL', 'ALB', 'Albania', 'Albanie'),
  ...
  array(716, 'ZW', 'ZWE', 'Zimbabwe', 'Zimbabwe')
);
?>

Fichier SQL

pays.sql

Fichier SQL pour base de données (code numérique, alpha2, alpha3, nom EN, nom FR).

CREATE TABLE `pays` (
  `code` int(3) NOT NULL,
  `alpha2` varchar(2) NOT NULL,
  `alpha3` varchar(3) NOT NULL,
  `en_GB` varchar(255) NOT NULL,
  `fr_FR` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `pays` (`code`, `alpha2`, `alpha3`, `en_GB`, `fr_FR`) VALUES
(4, 'AF', 'AFG', 'Afghanistan', 'Afghanistan'),
(248, 'AX', 'ALA', 'Åland Islands', 'Åland(Îles)'),
(8, 'AL', 'ALB', 'Albania', 'Albanie'),
(12, 'DZ', 'DZA', 'Algeria', 'Algérie'),
(16, 'AS', 'ASM', 'American Samoa', 'Samoa américaines'),
...
(716, 'ZW', 'ZWE', 'Zimbabwe', 'Zimbabwe');

ALTER TABLE `pays`
  ADD PRIMARY KEY (`code`),
  ADD UNIQUE KEY `alpha2` (`alpha2`),
  ADD UNIQUE KEY `alpha3` (`alpha3`);
COMMIT;

Autres exemples de formulaires

Laisser un commentaire (Seuls le nom et le commentaire sont requis).
Les commentaires sont modérés avant publication.