Wie wähle ich ein Länder -Dropdown -Auswahl -Formular ohne Datenbank aus?

StackOverflow https://stackoverflow.com/questions/1179566

  •  19-09-2019
  •  | 
  •  

Frage

Ich habe diesen PHP -Code, den ich verwende, um eine Dropdown -Formauswahl der Landes zu treffen. Ich möchte diese zusätzliche MySQL -Abfrage jedoch beseitigen und einfach die Ausgabe wie in Code auf der Seite speichern Ausgewählt, wenn ich die Abfrage nicht verwende, um die Daten zu erhalten, bitte beraten Sie

<select name="country"  style="width:180px;" onChange="do_get_rest_popup(this.value)" o>
<?PHP
$sql="SELECT * FROM  users_countries  ORDER BY country";
$result_country = executequery($sql);   
while($line_country = mysql_fetch_array($result_country)){
   $db_country_id = $line_country['id']; 
   $country_name = $line_country['country'];
?>
<option value="<?=$db_country_id?>"<? if($line_member['country']==$db_country_id){ echo " SELECTED";} ?>><?=$country_name?></option>
<?
}
?>
</select>

Code über Ausgänge dies auf Seite, ich habe die Menge der Länder für diesen Beitrag in die Down -Runde in den Griff bekommen

<select name="country"  style="width:180px;" onChange="do_get_rest_popup(this.value)" o> 
<option value="217">Turkmenistan</option> 
<option value="218">Turks and Caicos Islands</option> 
<option value="219">Tuvalu</option> 
<option value="220">Uganda</option> 
<option value="221">Ukraine</option> 
<option value="222">United Arab Emirates</option> 
<option value="223">United Kingdom (Great Britain)</option> 
<option value="224" SELECTED>United States</option> 
</select>
War es hilfreich?

Lösung

Wie wäre es mit so etwas?

<?
$countries = array(
"217" => "Turkenistan",
"218" => "Turks and Caicos Islands",
"219" => "Tuvalu",
"220" => "Uganda",
"221" => "Ukraine",
"222" => "United Arab Emirates",
"223" => "United Kingdom (Great Britain)"
"224" => "United States");
?>

<select name="country" style="width:180px;" onChange="do_get_rest_popup(this.value)" /> 
<?php
$countryCounter = 1;
$amtOfCountries = count($countries);
foreach ($country as $id => $c) {
    if ($countryCounter == $amtOfCountries) { 
    echo "<option value=\"$id\" SELECTED>$c</option>";
    } 
    else {
    echo "<option value=\"$id\">$c</option>";
    $countryCounter++;
        }
}
?>
</select>

Bearbeiten: Ich habe das nicht getestet, aber Sie sollten die Idee bekommen

Andere Tipps

Sie könnten:

  • Drucken Sie ein Array von Ländern als PHP -Code mit var_export () aus und hardcode anschließend irgendwo.
  • Zwischen den Werten aus der Datenbank unter Verwendung von etwas wie etwas wie etwas wie Pear Cache_lite - Dies ist sehr einfach zu verwenden und bedeutet, dass Sie, wenn Sie die Werte in der Datenbank ändern, lediglich die Cache -Datei löschen müssen, um sie zu regenerieren.

Bei beiden oben genannten Optionen haben Sie dann ein Array, über das Sie auf ähnliche Weise wie Sie jetzt umgehen können, um die HTML zu generieren.

Sie können das statische HTML pufferen und einen einfachen Zeichenfolge für den ausgewählten Wert durchführen.

1) Speichern Sie die HTML -Liste der Land countries.html

2) Zum Ladezeit lesen countries.html in eine Variable und eine Zeichenfolge ersetzen:

$countries = file_get_contents('countries.html');    
echo str_replace('value="'.$userCountry.'"','value="'.$userCountry.'" SELECTED',$countries);

Insgesamt nicht sehr speichereffizient, aber es speichert den Datenbank -Hit und die Verarbeitungszeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top