2015-10-27 3 views
1
<span class="userlabel">Country: </span><br> <select id="billingCountry" name="billingCountry"> 
    <option value="<?php echo $eachData['billingCountry']; ?>"><?php echo $eachData['billingCountry']; ?></option> 
    <option value="AA">Country A</option> 
    <option value="BB">Country B</option> 
    <option value="CC">Country C</option> 
    <option value="DD">Country D</option> 
    <option value="EE">Country E</option> 
</select> 

Скажем, у меня есть база данных, которая только хранит значение страны (коды стран, т.е. SG, MY, IR, IS) и хотел бы показать текст страны, основанной на значение из моей базы данных в качестве опции выпадающего списка по умолчанию. Есть ли эффективный способ сделать это, поскольку список стран огромен?получать раскрывающийся текст из значения базы данных, выбранные по умолчанию

Итак, скажем, база данных, хранящаяся «SG», я бы хотел, чтобы вместо «SG» в качестве значения по умолчанию отображалось «Сингапур».

Для моего фактического списка я использую эти значения из http://www.textfixer.com/resources/dropdowns/country-dropdown-iso-html.txt

редактирования: спасибо за все различные вариации!

+3

Вы можете использовать этот [Array] (https://gist.github.com/vxnick/380904), чтобы вы могли сопоставить код с правильным значением. – Naruto

+0

@Naruto Спасибо! Только то, что мне было нужно. ps A + для naruto name – zana

+0

Добро пожаловать, и thx :) – Naruto

ответ

0

Вы могли бы сделать это следующим образом:

<?php 
function getCountry($code) { 
    $countries = Array(
        "NL" => "Netherlands", 
        "SG" => "Singapore", 
        "UK" => "United Kingdom" 
       ); 

    return $countries[$code]; 
} 

echo getCountry("SG"); 
?> 

Edit: Misunderstood ваш вопрос, обновленный код

1

У вас есть два варианта. Первый - запустить функцию через эту функцию с символом - (минус) перед этим.

$name = Locale::getDisplayRegion("-{$code}"); 

Я не проверил это для всех ваших кодов страны. Во-вторых, было бы создание большого ассоциативного массива, где ключ - код страны, а значение - это имя.

Вы могли бы вытащить имя из примерно так:

$name = $assocArray[$code]; 
1

Предпочтение Метод: Прежде всего, вы должны сопоставить свою базу данных с правильными парами стран.
Таким образом, вы можете использовать другой столбец для вашей ценности.


Дополнительный способ: Вы можете спаривание в коде, используя массив, как:

$country = array 
(
'AF' => 'Afghanistan', 
'AX' => 'Aland Islands', 
'AL' => 'Albania', 
'DZ' => 'Algeria', 
'AS' => 'American Samoa', 
'AD' => 'Andorra', 
'AO' => 'Angola', 
'AI' => 'Anguilla', 
'AQ' => 'Antarctica', 
'AG' => 'Antigua And Barbuda', 
'AR' => 'Argentina', 
'AM' => 'Armenia', 
'AW' => 'Aruba', 
'AU' => 'Australia', 
'AT' => 'Austria', 
'AZ' => 'Azerbaijan', 
'BS' => 'Bahamas', 
'BH' => 'Bahrain', 
'BD' => 'Bangladesh', 
'BB' => 'Barbados', 
'BY' => 'Belarus', 
'BE' => 'Belgium', 
'BZ' => 'Belize', 
'BJ' => 'Benin', 
'BM' => 'Bermuda', 
'BT' => 'Bhutan', 
'BO' => 'Bolivia', 
'BA' => 'Bosnia And Herzegovina', 
'BW' => 'Botswana', 
'BV' => 'Bouvet Island', 
'BR' => 'Brazil', 
'IO' => 'British Indian Ocean Territory', 
'BN' => 'Brunei Darussalam', 
'BG' => 'Bulgaria', 
'BF' => 'Burkina Faso', 
'BI' => 'Burundi', 
'KH' => 'Cambodia', 
'CM' => 'Cameroon', 
'CA' => 'Canada', 
'CV' => 'Cape Verde', 
'KY' => 'Cayman Islands', 
'CF' => 'Central African Republic', 
'TD' => 'Chad', 
'CL' => 'Chile', 
'CN' => 'China', 
'CX' => 'Christmas Island', 
'CC' => 'Cocos (Keeling) Islands', 
'CO' => 'Colombia', 
'KM' => 'Comoros', 
'CG' => 'Congo', 
'CD' => 'Congo, Democratic Republic', 
'CK' => 'Cook Islands', 
'CR' => 'Costa Rica', 
'CI' => 'Cote D\'Ivoire', 
'HR' => 'Croatia', 
'CU' => 'Cuba', 
'CY' => 'Cyprus', 
'CZ' => 'Czech Republic', 
'DK' => 'Denmark', 
'DJ' => 'Djibouti', 
'DM' => 'Dominica', 
'DO' => 'Dominican Republic', 
'EC' => 'Ecuador', 
'EG' => 'Egypt', 
'SV' => 'El Salvador', 
'GQ' => 'Equatorial Guinea', 
'ER' => 'Eritrea', 
'EE' => 'Estonia', 
'ET' => 'Ethiopia', 
'FK' => 'Falkland Islands (Malvinas)', 
'FO' => 'Faroe Islands', 
'FJ' => 'Fiji', 
'FI' => 'Finland', 
'FR' => 'France', 
'GF' => 'French Guiana', 
'PF' => 'French Polynesia', 
'TF' => 'French Southern Territories', 
'GA' => 'Gabon', 
'GM' => 'Gambia', 
'GE' => 'Georgia', 
'DE' => 'Germany', 
'GH' => 'Ghana', 
'GI' => 'Gibraltar', 
'GR' => 'Greece', 
'GL' => 'Greenland', 
'GD' => 'Grenada', 
'GP' => 'Guadeloupe', 
'GU' => 'Guam', 
'GT' => 'Guatemala', 
'GG' => 'Guernsey', 
'GN' => 'Guinea', 
'GW' => 'Guinea-Bissau', 
'GY' => 'Guyana', 
'HT' => 'Haiti', 
'HM' => 'Heard Island & Mcdonald Islands', 
'VA' => 'Holy See (Vatican City State)', 
'HN' => 'Honduras', 
'HK' => 'Hong Kong', 
'HU' => 'Hungary', 
'IS' => 'Iceland', 
'IN' => 'India', 
'ID' => 'Indonesia', 
'IR' => 'Iran, Islamic Republic Of', 
'IQ' => 'Iraq', 
'IE' => 'Ireland', 
'IM' => 'Isle Of Man', 
'IL' => 'Israel', 
'IT' => 'Italy', 
'JM' => 'Jamaica', 
'JP' => 'Japan', 
'JE' => 'Jersey', 
'JO' => 'Jordan', 
'KZ' => 'Kazakhstan', 
'KE' => 'Kenya', 
'KI' => 'Kiribati', 
'KR' => 'Korea', 
'KW' => 'Kuwait', 
'KG' => 'Kyrgyzstan', 
'LA' => 'Lao People\'s Democratic Republic', 
'LV' => 'Latvia', 
'LB' => 'Lebanon', 
'LS' => 'Lesotho', 
'LR' => 'Liberia', 
'LY' => 'Libyan Arab Jamahiriya', 
'LI' => 'Liechtenstein', 
'LT' => 'Lithuania', 
'LU' => 'Luxembourg', 
'MO' => 'Macao', 
'MK' => 'Macedonia', 
'MG' => 'Madagascar', 
'MW' => 'Malawi', 
'MY' => 'Malaysia', 
'MV' => 'Maldives', 
'ML' => 'Mali', 
'MT' => 'Malta', 
'MH' => 'Marshall Islands', 
'MQ' => 'Martinique', 
'MR' => 'Mauritania', 
'MU' => 'Mauritius', 
'YT' => 'Mayotte', 
'MX' => 'Mexico', 
'FM' => 'Micronesia, Federated States Of', 
'MD' => 'Moldova', 
'MC' => 'Monaco', 
'MN' => 'Mongolia', 
'ME' => 'Montenegro', 
'MS' => 'Montserrat', 
'MA' => 'Morocco', 
'MZ' => 'Mozambique', 
'MM' => 'Myanmar', 
'NA' => 'Namibia', 
'NR' => 'Nauru', 
'NP' => 'Nepal', 
'NL' => 'Netherlands', 
'AN' => 'Netherlands Antilles', 
'NC' => 'New Caledonia', 
'NZ' => 'New Zealand', 
'NI' => 'Nicaragua', 
'NE' => 'Niger', 
'NG' => 'Nigeria', 
'NU' => 'Niue', 
'NF' => 'Norfolk Island', 
'MP' => 'Northern Mariana Islands', 
'NO' => 'Norway', 
'OM' => 'Oman', 
'PK' => 'Pakistan', 
'PW' => 'Palau', 
'PS' => 'Palestinian Territory, Occupied', 
'PA' => 'Panama', 
'PG' => 'Papua New Guinea', 
'PY' => 'Paraguay', 
'PE' => 'Peru', 
'PH' => 'Philippines', 
'PN' => 'Pitcairn', 
'PL' => 'Poland', 
'PT' => 'Portugal', 
'PR' => 'Puerto Rico', 
'QA' => 'Qatar', 
'RE' => 'Reunion', 
'RO' => 'Romania', 
'RU' => 'Russian Federation', 
'RW' => 'Rwanda', 
'BL' => 'Saint Barthelemy', 
'SH' => 'Saint Helena', 
'KN' => 'Saint Kitts And Nevis', 
'LC' => 'Saint Lucia', 
'MF' => 'Saint Martin', 
'PM' => 'Saint Pierre And Miquelon', 
'VC' => 'Saint Vincent And Grenadines', 
'WS' => 'Samoa', 
'SM' => 'San Marino', 
'ST' => 'Sao Tome And Principe', 
'SA' => 'Saudi Arabia', 
'SN' => 'Senegal', 
'RS' => 'Serbia', 
'SC' => 'Seychelles', 
'SL' => 'Sierra Leone', 
'SG' => 'Singapore', 
'SK' => 'Slovakia', 
'SI' => 'Slovenia', 
'SB' => 'Solomon Islands', 
'SO' => 'Somalia', 
'ZA' => 'South Africa', 
'GS' => 'South Georgia And Sandwich Isl.', 
'ES' => 'Spain', 
'LK' => 'Sri Lanka', 
'SD' => 'Sudan', 
'SR' => 'Suriname', 
'SJ' => 'Svalbard And Jan Mayen', 
'SZ' => 'Swaziland', 
'SE' => 'Sweden', 
'CH' => 'Switzerland', 
'SY' => 'Syrian Arab Republic', 
'TW' => 'Taiwan', 
'TJ' => 'Tajikistan', 
'TZ' => 'Tanzania', 
'TH' => 'Thailand', 
'TL' => 'Timor-Leste', 
'TG' => 'Togo', 
'TK' => 'Tokelau', 
'TO' => 'Tonga', 
'TT' => 'Trinidad And Tobago', 
'TN' => 'Tunisia', 
'TR' => 'Turkey', 
'TM' => 'Turkmenistan', 
'TC' => 'Turks And Caicos Islands', 
'TV' => 'Tuvalu', 
'UG' => 'Uganda', 
'UA' => 'Ukraine', 
'AE' => 'United Arab Emirates', 
'GB' => 'United Kingdom', 
'US' => 'United States', 
'UM' => 'United States Outlying Islands', 
'UY' => 'Uruguay', 
'UZ' => 'Uzbekistan', 
'VU' => 'Vanuatu', 
'VE' => 'Venezuela', 
'VN' => 'Viet Nam', 
'VG' => 'Virgin Islands, British', 
'VI' => 'Virgin Islands, U.S.', 
'WF' => 'Wallis And Futuna', 
'EH' => 'Western Sahara', 
'YE' => 'Yemen', 
'ZM' => 'Zambia', 
'ZW' => 'Zimbabwe', 
); 

и вы используете

$country[$eachData['billingCountry']] 

вместо вашего $ eachData [ 'billingCountry'].
Этот метод, пожалуйста, убедитесь, что вы можете отобразить выбранную страну в те же данные при отправке для проверки в базе данных.

+1

http://stackoverflow.com/questions/12143252/convert-country-name-to-country-code-abbreviations-php –

+0

Лучший способ использования базы данных, @ NanaPartykar ссылается на заявление о вставке для вас. – ZenithS

 Смежные вопросы

  • Нет связанных вопросов^_^