2010-06-09 6 views
1

J'ai un menu de sélection qui affiche les pays. Il regarde la base de données et en juger par la valeur de la db montre l'option sélectionnée. Y at-il un moyen plus simple de faire ce que:Comment simplifier mon menu de sélection de pays PHP/mysql

if ($country == 'AG') {echo '<option value="AG" selected="selected">Antigua</option>';} 
else {echo '<option value="AG">Antigua</option>';}; 

if ($country == 'AR') {echo '<option value="AR" selected="selected">Argentina</option>';} 
else {echo '<option value="AR">Argentina</option>';}; 

if ($country == 'AM') {echo '<option value="AM" selected="selected">Armenia</option>';} 
else {echo '<option value="AM">Armenia</option>';}; 

if ($country == 'AW') {echo '<option value="AW" selected="selected">Aruba</option>';} 
else {echo '<option value="AW">Aruba</option>';}; 

if ($country == 'AU') {echo '<option value="AU" selected="selected">Australia</option>';} 
else {echo '<option value="AU">Australia</option >';}; 

if ($country == 'AT') {echo '<option value="AT" selected="selected">Austria</option>';} 
else {echo '<option value="AT">Austria</option>';}; 

if ($country == 'AZ') {echo '<option value="AZ" selected="selected">Azerbaijan</option>';} 
else {echo '<option value="AZ">Azerbaijan</option>';}; 

if ($country == 'BS') {echo '<option value="BS" selected="selected">Bahamas</option>';} 
else {echo '<option value="BS">Bahamas</option>';}; 

if ($country == 'BH') {echo '<option value="BH" selected="selected">Bahrain</option>';} 
else {echo '<option value="BH">Bahrain</option>';}; 

Il y a beaucoup de pays et de faire ce serait de la folie serait-ce pas ????

+2

En utilisant une boucle ... et un tableau. –

Répondre

1

Chaque fois que vous avez beaucoup de code, qui ne pratiquement le même, il est un signe d'utiliser une boucle ou une fonction au lieu de réécrire les lignes de code de milliers. Michael B. a remarqué que la méthode easies consiste à utiliser un tableau et une simple boucle pour afficher cette liste et marquer l'élément correct comme sélectionné.

$countries = array(
    'us' => 'United States of America', 
    'de' => 'Germany', 
    'pl' => 'Poland', 
    'fr' => 'France', 
    ... 
); 

foreach ($countires as $code => $name) { 
    echo '<option value="' . $code . '" ' . ($country == $code ? 'selected="selected"' : null) . '>' . $name . '</option>'; 
} 
1

Peut-être quelque chose comme cette volonté fonctionne:

$myCountry = "PL"; 

foreach ($countries as $country) { 
    echo '<option value = "'BH'"' 

    if ($country == $myCountry) {echo ' selected="selected"';} 

    echo '>Bahrain</option>'; 
} 

$countries est un tableau ou d'enregistrements avec toutes les données de pays.

Dépend du type de $countries, vous devez remplacer les données de Bahreïn dans l'exemple ci-dessus avec les données provenant de $countries.

2

Oui, il le ferait, lisez le DRY principle. Itérer à travers votre pays et de resultset vérifier dans la boucle si ce pays est sélectionné, comme ceci:

$selected_value = 'AG'; // set to stored preference or something 
foreach ($countries as $code => $country) { 
    echo '<option value="' . htmlspecialchars($code) . '"'; 
    if ($code == $selected_value) { 
    echo ' selected="selected"'; 
    } 
    echo '>' . htmlspecialchars($country) . '</option>'; 
} 
0

Quelque chose comme:

$countries = array('AG' => 'Antigua', 'AR' => 'Argentina', ...); 

foreach($countries as $code => $name) { 
    $selected = ($country == $code) ? 'selected="selected"' : ''; 
    echo '<option value="' . $code . '"' . $selected . ' >' . $name . '</option>'; 
} 
0

Laissez $countries être l'ensemble des pays de la base de données. Que la valeur de pays spécifiée à l'intérieur de variable $country

foreach($countries as $value) 
{ 
    if($country == $value['code']) 
     echo '<option value="' . $value['code'] .'" selected="selected">'. $value['name'] . '</option'; 
    else 
     echo '<option value="' . $value['code'] . '">' . $value['name'] . '</option>'; 
} 
-2

   <?php if($country=" ") { ?> 
        <option value="">Select Country</option> 
        <?php } else { ?> 
        <option value=""><?php echo $country; ?></option> 
       <?php } ?> 

       <option value="Afghanistan">Afghanistan</option> 
       <option value="Albania">Albania</option> 
       <option value="Algeria">Algeria</option> 
       <option value="American Samoa">American Samoa</option> 
       <option value="Andorra">Andorra</option> 
       <option value="Angola">Angola</option> 
       <option value="Anguilla">Anguilla</option> 
       <option value="Antigua &amp; Barbuda">Antigua &amp; Barbuda</option> 
       <option value="Argentina">Argentina</option> 
       <option value="Armenia">Armenia</option> 
       <option value="Aruba">Aruba</option> 
       <option value="Australia">Australia</option> 
       <option value="Austria">Austria</option> 
       <option value="Azerbaijan">Azerbaijan</option> 
       <option value="Bahamas">Bahamas</option> 
       <option value="Bahrain">Bahrain</option> 
       <option value="Bangladesh">Bangladesh</option> 
       <option value="Barbados">Barbados</option> 
       <option value="Belarus">Belarus</option> 
       <option value="Belgium">Belgium</option> 
       <option value="Belize">Belize</option> 
       <option value="Benin">Benin</option> 
       <option value="Bermuda">Bermuda</option> 
       <option value="Bhutan">Bhutan</option> 
       <option value="Bolivia">Bolivia</option> 
       <option value="Bonaire">Bonaire</option> 
       <option value="Bosnia &amp; Herzegovina">Bosnia &amp; Herzegovina</option> 
       <option value="Botswana">Botswana</option> 
       <option value="Brazil">Brazil</option> 
       <option value="British Indian Ocean Ter">British Indian Ocean Ter</option> 
       <option value="Brunei">Brunei</option> 
       <option value="Bulgaria">Bulgaria</option> 
       <option value="Burkina Faso">Burkina Faso</option> 
       <option value="Burundi">Burundi</option> 
       <option value="Cambodia">Cambodia</option> 
       <option value="Cameroon">Cameroon</option> 
       <option value="Canada">Canada</option> 
       <option value="Canary Islands">Canary Islands</option> 
       <option value="Cape Verde">Cape Verde</option> 
       <option value="Cayman Islands">Cayman Islands</option> 
       <option value="Central African Republic">Central African Republic</option> 
       <option value="Chad">Chad</option> 
       <option value="Channel Islands">Channel Islands</option> 
       <option value="Chile">Chile</option> 
       <option value="China">China</option> 
       <option value="Christmas Island">Christmas Island</option> 
       <option value="Cocos Island">Cocos Island</option> 
       <option value="Colombia">Colombia</option> 
       <option value="Comoros">Comoros</option> 
       <option value="Congo">Congo</option> 
       <option value="Cook Islands">Cook Islands</option> 
       <option value="Costa Rica">Costa Rica</option> 
       <option value="Cote D'Ivoire">Cote D'Ivoire</option> 
       <option value="Croatia">Croatia</option> 
       <option value="Cuba">Cuba</option> 
       <option value="Curacao">Curacao</option> 
       <option value="Cyprus">Cyprus</option> 
       <option value="Czech Republic">Czech Republic</option> 
       <option value="Denmark">Denmark</option> 
       <option value="Djibouti">Djibouti</option> 
       <option value="Dominica">Dominica</option> 
       <option value="Dominican Republic">Dominican Republic</option> 
       <option value="East Timor">East Timor</option> 
       <option value="Ecuador">Ecuador</option> 
       <option value="Egypt">Egypt</option> 
       <option value="El Salvador">El Salvador</option> 
       <option value="Equatorial Guinea">Equatorial Guinea</option> 
       <option value="Eritrea">Eritrea</option> 
       <option value="Estonia">Estonia</option> 
       <option value="Ethiopia">Ethiopia</option> 
       <option value="Falkland Islands">Falkland Islands</option> 
       <option value="Faroe Islands">Faroe Islands</option> 
       <option value="Fiji">Fiji</option> 
       <option value="Finland">Finland</option> 
       <option value="France">France</option> 
       <option value="French Guiana">French Guiana</option> 
       <option value="French Polynesia">French Polynesia</option> 
       <option value="French Southern Ter">French Southern Ter</option> 
       <option value="Gabon">Gabon</option> 
       <option value="Gambia">Gambia</option> 
       <option value="Georgia">Georgia</option> 
       <option value="Germany">Germany</option> 
       <option value="Ghana">Ghana</option> 
       <option value="Gibraltar">Gibraltar</option> 
       <option value="Great Britain">Great Britain</option> 
       <option value="Greece">Greece</option> 
       <option value="Greenland">Greenland</option> 
       <option value="Grenada">Grenada</option> 
       <option value="Guadeloupe">Guadeloupe</option> 
       <option value="Guam">Guam</option> 
       <option value="Guatemala">Guatemala</option> 
       <option value="Guinea">Guinea</option> 
       <option value="Guyana">Guyana</option> 
       <option value="Haiti">Haiti</option> 
       <option value="Hawaii">Hawaii</option> 
       <option value="Honduras">Honduras</option> 
       <option value="Hong Kong">Hong Kong</option> 
       <option value="Hungary">Hungary</option> 
       <option value="Iceland">Iceland</option> 
       <option value="India">India</option> 
       <option value="Indonesia">Indonesia</option> 
       <option value="Iran">Iran</option> 
       <option value="Iraq">Iraq</option> 
       <option value="Ireland">Ireland</option> 
       <option value="Isle of Man">Isle of Man</option> 
       <option value="Israel">Israel</option> 
       <option value="Italy">Italy</option> 
       <option value="Jamaica">Jamaica</option> 
       <option value="Japan">Japan</option> 
       <option value="Jordan">Jordan</option> 
       <option value="Kazakhstan">Kazakhstan</option> 
       <option value="Kenya">Kenya</option> 
       <option value="Kiribati">Kiribati</option> 
       <option value="Korea North">Korea North</option> 
       <option value="Korea South">Korea South</option> 
       <option value="Kuwait">Kuwait</option> 
       <option value="Kyrgyzstan">Kyrgyzstan</option> 
       <option value="Laos">Laos</option> 
       <option value="Latvia">Latvia</option> 
       <option value="Lebanon">Lebanon</option> 
       <option value="Lesotho">Lesotho</option> 
       <option value="Liberia">Liberia</option> 
       <option value="Libya">Libya</option> 
       <option value="Liechtenstein">Liechtenstein</option> 
       <option value="Lithuania">Lithuania</option> 
       <option value="Luxembourg">Luxembourg</option> 
       <option value="Macau">Macau</option> 
       <option value="Macedonia">Macedonia</option> 
       <option value="Madagascar">Madagascar</option> 
       <option value="Malaysia">Malaysia</option> 
       <option value="Malawi">Malawi</option> 
       <option value="Maldives">Maldives</option> 
       <option value="Mali">Mali</option> 
       <option value="Malta">Malta</option> 
       <option value="Marshall Islands">Marshall Islands</option> 
       <option value="Martinique">Martinique</option> 
       <option value="Mauritania">Mauritania</option> 
       <option value="Mauritius">Mauritius</option> 
       <option value="Mayotte">Mayotte</option> 
       <option value="Mexico">Mexico</option> 
       <option value="Midway Islands">Midway Islands</option> 
       <option value="Moldova">Moldova</option> 
       <option value="Monaco">Monaco</option> 
       <option value="Mongolia">Mongolia</option> 
       <option value="Montserrat">Montserrat</option> 
       <option value="Morocco">Morocco</option> 
       <option value="Mozambique">Mozambique</option> 
       <option value="Myanmar">Myanmar</option> 
       <option value="Nambia">Nambia</option> 
       <option value="Nauru">Nauru</option> 
       <option value="Nepal">Nepal</option> 
       <option value="Netherland Antilles">Netherland Antilles</option> 
       <option value="Netherlands (Holland, Europe)">Netherlands (Holland, Europe)</option> 
       <option value="Nevis">Nevis</option> 
       <option value="New Caledonia">New Caledonia</option> 
       <option value="New Zealand">New Zealand</option> 
       <option value="Nicaragua">Nicaragua</option> 
       <option value="Niger">Niger</option> 
       <option value="Nigeria">Nigeria</option> 
       <option value="Niue">Niue</option> 
       <option value="Norfolk Island">Norfolk Island</option> 
       <option value="Norway">Norway</option> 
       <option value="Oman">Oman</option> 
       <option value="Pakistan">Pakistan</option> 
       <option value="Palau Island">Palau Island</option> 
       <option value="Palestine">Palestine</option> 
       <option value="Panama">Panama</option> 
       <option value="Papua New Guinea">Papua New Guinea</option> 
       <option value="Paraguay">Paraguay</option> 
       <option value="Peru">Peru</option> 
       <option value="Philippines">Philippines</option> 
       <option value="Pitcairn Island">Pitcairn Island</option> 
       <option value="Poland">Poland</option> 
       <option value="Portugal">Portugal</option> 
       <option value="Puerto Rico">Puerto Rico</option> 
       <option value="Qatar">Qatar</option> 
       <option value="Republic of Montenegro">Republic of Montenegro</option> 
       <option value="Republic of Serbia">Republic of Serbia</option> 
       <option value="Reunion">Reunion</option> 
       <option value="Romania">Romania</option> 
       <option value="Russia">Russia</option> 
       <option value="Rwanda">Rwanda</option> 
       <option value="St Barthelemy">St Barthelemy</option> 
       <option value="St Eustatius">St Eustatius</option> 
       <option value="St Helena">St Helena</option> 
       <option value="St Kitts-Nevis">St Kitts-Nevis</option> 
       <option value="St Lucia">St Lucia</option> 
       <option value="St Maarten">St Maarten</option> 
       <option value="St Pierre &amp; Miquelon">St Pierre &amp; Miquelon</option> 
       <option value="St Vincent &amp; Grenadines">St Vincent &amp; Grenadines</option> 
       <option value="Saipan">Saipan</option> 
       <option value="Samoa">Samoa</option> 
       <option value="Samoa American">Samoa American</option> 
       <option value="San Marino">San Marino</option> 
       <option value="Sao Tome &amp; Principe">Sao Tome &amp; Principe</option> 
       <option value="Saudi Arabia">Saudi Arabia</option> 
       <option value="Senegal">Senegal</option> 
       <option value="Seychelles">Seychelles</option> 
       <option value="Sierra Leone">Sierra Leone</option> 
       <option value="Singapore">Singapore</option> 
       <option value="Slovakia">Slovakia</option> 
       <option value="Slovenia">Slovenia</option> 
       <option value="Solomon Islands">Solomon Islands</option> 
       <option value="Somalia">Somalia</option> 
       <option value="South Africa">South Africa</option> 
       <option value="Spain">Spain</option> 
       <option value="Sri Lanka">Sri Lanka</option> 
       <option value="Sudan">Sudan</option> 
       <option value="Suriname">Suriname</option> 
       <option value="Swaziland">Swaziland</option> 
       <option value="Sweden">Sweden</option> 
       <option value="Switzerland">Switzerland</option> 
       <option value="Syria">Syria</option> 
       <option value="Tahiti">Tahiti</option> 
       <option value="Taiwan">Taiwan</option> 
       <option value="Tajikistan">Tajikistan</option> 
       <option value="Tanzania">Tanzania</option> 
       <option value="Thailand">Thailand</option> 
       <option value="Togo">Togo</option> 
       <option value="Tokelau">Tokelau</option> 
       <option value="Tonga">Tonga</option> 
       <option value="Trinidad &amp; Tobago">Trinidad &amp; Tobago</option> 
       <option value="Tunisia">Tunisia</option> 
       <option value="Turkey">Turkey</option> 
       <option value="Turkmenistan">Turkmenistan</option> 
       <option value="Turks &amp; Caicos Is">Turks &amp; Caicos Is</option> 
       <option value="Tuvalu">Tuvalu</option> 
       <option value="Uganda">Uganda</option> 
       <option value="Ukraine">Ukraine</option> 
       <option value="United Arab Emirates">United Arab Emirates</option> 
       <option value="United Kingdom">United Kingdom</option> 
       <option value="United States of America">United States of America</option> 
       <option value="Uruguay">Uruguay</option> 
       <option value="Uzbekistan">Uzbekistan</option> 
       <option value="Vanuatu">Vanuatu</option> 
       <option value="Vatican City State">Vatican City State</option> 
       <option value="Venezuela">Venezuela</option> 
       <option value="Vietnam">Vietnam</option> 
       <option value="Virgin Islands (Brit)">Virgin Islands (Brit)</option> 
       <option value="Virgin Islands (USA)">Virgin Islands (USA)</option> 
       <option value="Wake Island">Wake Island</option> 
       <option value="Wallis &amp; Futana Is">Wallis &amp; Futana Is</option> 
       <option value="Yemen">Yemen</option> 
       <option value="Zaire">Zaire</option> 
       <option value="Zambia">Zambia</option> 
       <option value="Zimbabwe">Zimbabwe</option> 
       </select> 
Questions connexes