Liste déroulante avec tous les pays

3/5 (13 avis)

Vue 87 474 fois - Téléchargée 6 532 fois

Description

J'ai fait ce script parce que ben à priori je ne l'ai pas trouvé ici. C'est pas grand chose mais ca peut servir.

Liste tous les pays du monde dans une combo
  • D'une part : via un fichier texte chargé dans une table Mysql
  • D'autre part : via un fichier texte qui contient la liste des pays

Source / Exemple :


<?php
	
	 // connexion à la base
	$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
	
	// sélection de la base  
    mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
    
    // requête sql
    $sql = "CREATE TABLE pays (iso varchar(2) NOT NULL,nom varchar(50) NOT NULL,UNIQUE KEY iso (iso)) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
    
    // on crée la table
    //mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    echo '<br>Table \'pays\' créée.';
	
	//CHARGEMENTDU FICHIER LISTE PAYS DANS LA TABLE PAYS
	//////////////////////////////////////////////////////////////////

    // requête sql
    $sql = "LOAD DATA INFILE 'c:/liste_pays.txt' INTO TABLE pays;";
    
    // on charge le fichier dans la table
    //mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    echo 'Votre fichier a été chargé.';

?> 

<form action="" method="post" name="form">
<p><b>Liste Déroulante à partir d'une table mysql</b>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Choisissez un Pays</td>
    <td><select name="pays" id="pays">
					<?php
						// requête sql
						$sql = "SELECT * FROM pays;";
						
						// on sélectionne toutes les entrées de la table
						$req=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
						
						//On affiche ces entrées
						while($data = mysql_fetch_assoc($req))
						{
							if ($data['nom']=='France') // France est sélectionné par défaut
							print '<option value='.$data['iso'].' selected="selected">'.$data['nom'].'</option>';
							else
							print '<option value='.$data['iso'].'>'.$data['nom'].'</option>';
						}
					
					    mysql_close();  // on ferme la connexion

					?>
				</select>
	</td>
  </tr>
</table>
</p>

<p><b>Liste Déroulante à partir d'un fichier texte</b>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Choisissez un Pays</td>
    <td><select name="pays" id="pays">
					<?php
						$id_fichier= fopen("c:/liste_pays.txt","r");
						while($ligne=fgets($id_fichier,1024))
						{
							$ligne=explode(chr(9),$ligne); //chr(9) est le code ascii de tab
							if ($ligne[1]=='France') // France est sélectionné par défaut
							print '<option value='.$ligne[0].' selected="selected">'.$ligne[1].'</option>';
							else
							print '<option value='.$ligne[0].'>'.$ligne[1].'</option>';
						}
					?>
				</select>
	</td>
  </tr>
</table>
</p>
</form>

Codes Sources

A voir également

Ajouter un commentaire Commentaires
kimozart Messages postés 1 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 13 mars 2012
13 mars 2012 à 13:28
Bonjour j'ai utilisé ce code avec la liste des pays en fichier texte mais à l'envoi du pays sélectionné par email, je recois que les deux lettre par exemple, quand je sélectionné France dans le menu déroulant, le résultat que j'ai par émail c'est 'FR'
comment je fais pour avoir le nom complet du pays

Merci
lezj Messages postés 66 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 juillet 2013
28 avril 2011 à 00:14
bonsoir à tous et merci THEOS ton post m'a été très util.
cs_jodaltons Messages postés 2 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 2 novembre 2010
2 nov. 2010 à 12:18
Désoler pour le directio_ville & directio_villes qui en fait est le nom de la base de données dans un premier temps & le nom de la table!
cs_jodaltons Messages postés 2 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 2 novembre 2010
2 nov. 2010 à 12:13
Merci pour ta liste de pays ! Et merci Theos je me permets d'apporter une petite correction et une amélioration.

INSERT INTO `directio_ville`.`directio_villes` (
`NomPays` ,`CodePays`)VALUES ('France','FR'),
('Suisse','CH'),
('Luxembourg','LU'),
('Belgique','BE'),
('Allemagne','DE'),
('Autriche','AT'),
('Russie','RU'),
('Etats-Unis','US'),
('Canada','CA'),
('Royaume-Uni','GB'),
('Australie','AU'),
('Japon','JP'),
('Inde','IN'),
('Grèce','GR'),
('Mexique','MX'),
('Brésil','BR'),
('Suède','SE'),
('Espagne','ES'),
('Afghanistan','AF'),
('Afrique du Sud','ZA'),
('Albanie','AL'),
('Algérie','DZ'),
('Andorre','AD'),
('Angola','AO'),
('Anguilla','AI'),
('Antarctique','AQ'),
('Antigua-et-Barbuda','AG'),
('Antilles néerlandaises','AN'),
('Arabie saoudite','SA'),
('Argentine','AR'),
('Arménie','AM'),
('Aruba','AW'),
('Azerbaïdjan','AZ'),
('Bénin','BJ'),
('Bahamas','BS'),
('Bahreïn','BH'),
('Bangladesh','BD'),
('Barbade','BB'),
('Belau','PW'),
('Belize','BZ'),
('Bermudes','BM'),
('Bhoutan','BT'),
('Biélorussi','BY'),
('Birmani','MM'),
('Bolivie','BO'),
('Bosnie-Herzégovin','BA'),
('Botswana','BW'),
('Brunei','BN'),
('Bulgarie','BG'),
('Burkina Faso','BF'),
('Burundi','BI'),
('Côte d''Ivoire','CI'),
('Cambodge','KH'),
('Cameroun','CM'),
('Cap-Vert','CV'),
('Chili','CL'),
('Chine','CN'),
('Chypre','CY'),
('Colombie','CO'),
('Comores','KM'),
('Congo','CG'),
('Corée du Nord','KP'),
('Corée du Sud','KR'),
('Costa Rica','CR'),
('Croatie','HR'),
('Cuba','CU'),
('Danemark','DK'),
('Djibouti','DJ'),
('Dominique','DM'),
('Egypte','EG'),
('Emirats arabes unis','AE'),
('Equateur','EC'),
('Erythrée','ER'),
('Estonie','EE'),
('Ethiopie','ET'),
('Finlande','FI'),
('Géorgie','GE'),
('Gabon','GA'),
('Gambie','GM'),
('Ghana','GH'),
('Gibraltar','GI'),
('Grenade','GD'),
('Groenland','GL'),
('Guadeloupe','GP'),
('Guam','GU'),
('Guatemala','GT'),
('Guinée','GN'),
('Guinée équatoriale','GQ'),
('Guinée-Bissao','GW'),
('Guyana','GY'),
('Guyane française','GF'),
('Haïti','HT'),
('Honduras','HN'),
('Hong Kong','HK'),
('Hongrie','HU'),
('Ile Bouvet','BV'),
('Ile Christmas','CX'),
('Ile Norfolk','NF'),
('Iles Cayman','KY'),
('Iles Cook','CK'),
('Iles Féroé','FO'),
('Iles Falkland','FK'),
('Iles Fidji','FJ'),
('Iles Géorgie du Sud et Sandwich du Sud','GS'),
('Iles Heard et McDonald','HM'),
('Iles Marshall','MH'),
('Iles Pitcairn','PN'),
('Iles Salomon','SB'),
('Iles Svalbard et Jan Mayen','SJ'),
('Iles Turks-et-Caicos','TC'),
('Iles Vierges américaines','VI'),
('Iles Vierges britanniques','VG'),
('Iles des Cocos (Keeling)','CC'),
('Iles mineures éloignées des Etats-Unis','UM'),
('Indonésie','ID'),
('Iran','IR'),
('Iraq','IQ'),
('Irlande','IE'),
('Islande','IS'),
('Israël','IL'),
('Italie','IT'),
('Jamaïque','JM'),
('Jordanie','JO'),
('Kazakhstan','KZ'),
('Kenya','KE'),
('Kirghizistan','KG'),
('Kiribati','KI'),
('Koweït','KW'),
('Laos','LA'),
('Lesotho','LS'),
('Lettonie','LV'),
('Liban','LB'),
('Liberia','LR'),
('Libye','LY'),
('Liechtenstein','LI'),
('Lituanie','LT'),
('Macao','MO'),
('Madagascar','MG'),
('Malaisie','MY'),
('Malawi','MW'),
('Maldives','MV'),
('Mali','ML'),
('Malte','MT'),
('Mariannes du Nord','MP'),
('Maroc','MA'),
('Martinique','MQ'),
('Maurice','MU'),
('Mauritanie','MR'),
('Mayotte','YT'),
('Micronésie','FM'),
('Moldavie','MD'),
('Monaco','MC'),
('Mongolie','MN'),
('Montserrat','MS'),
('Mozambique','MZ'),
('Népal','NP'),
('Namibie','NA'),
('Nauru','NR'),
('Nicaragua','NI'),
('Niger','NE'),
('Nigeria','NG'),
('Nioué','NU'),
('Norvège','NO'),
('Nouvelle-Calédonie','NC'),
('Nouvelle-Zélande','NZ'),
('Oman','OM'),
('Ouganda','UG'),
('Ouzbékistan','UZ'),
('Pérou','PE'),
('Pakistan','PK'),
('Panama','PA'),
('Papouasie-Nouvelle-Guinée','PG'),
('Paraguay','PY'),
('Pays-Bas','NL'),
('Philippines','PH'),
('Pologne','PL'),
('Polynésie française','PF'),
('Porto Rico','PR'),
('Portugal','PT'),
('Qatar','QA'),
('République centrafricaine','CF'),
('République démocratique du Congo','CD'),
('République dominicaine','DO'),
('République tchèque','CZ'),
('Réunion','RE'),
('Roumanie','RO'),
('Rwanda','RW'),
('Sénégal','SN'),
('Sahara occidental','EH'),
('Saint-Christophe-et-Niévès','KN'),
('Saint-Marin','SM'),
('Saint-Pierre-et-Miquelon','PM'),
('Saint-Siège ','VA'),
('Saint-Vincent-et-les-Grenadines','VC'),
('Sainte-Hélène','SH'),
('Sainte-Lucie','LC'),
('Salvador','SV'),
('Samoa','WS'),
('Samoa américaines','AS'),
('Sao Tomé-et-Principe','ST'),
('Seychelles','SC'),
('Sierra Leone','SL'),
('Singapour','SG'),
('Slovénie','SI'),
('Slovaquie','SK'),
('Somalie','SO'),
('Soudan','SD'),
('Sri Lanka','LK'),
('Suriname','SR'),
('Swaziland','SZ'),
('Syrie','SY'),
('Taïwan','TW'),
('Tadjikistan','TJ'),
('Tanzanie','TZ'),
('Tchad','TD'),
('Terres australes françaises','TF'),
('Territoire britannique de l''Océan Indien','IO'),
('Thaïlande','TH'),
('Timor Oriental','TL'),
('Togo','TG'),
('Tokélaou','TK'),
('Tonga','TO'),
('Trinité-et-Tobago','TT'),
('Tunisie','TN'),
('Turkménistan','TM'),
('Turquie','TR'),
('Tuvalu','TV'),
('Ukraine','UA'),
('Uruguay','UY'),
('Vanuatu','VU'),
('Venezuela','VE'),
('Viêt Nam','VN'),
('Wallis-et-Futuna','WF'),
('Yémen','YE'),
('Yougoslavie','YU'),
('Zambie','ZM'),
('Zimbabw','ZW'),
('ex-République yougoslave de Macédoin','MK');
utzal Messages postés 5 Date d'inscription dimanche 20 septembre 2009 Statut Membre Dernière intervention 25 janvier 2010
25 janv. 2010 à 17:41
Bonsoir à tous, je n'arrive pas à intégrer ce script dans ma page Web (Izispot) j'ai un message d'erreur '.$ligne[1].' ? quelqu'un à une idée ?
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.