come scegliere un paese a discesa oggetto modulo di selezione senza utilizzare database?
Domanda
Ho questo codice PHP che uso per fare una selezione sotto forma di menu a discesa Paese del Vorrei eliminare questa query mysql in più e anche se solo memorizzare l'output come nel codice per sulla pagina Tuttavia mi sono perso su come avrei paese utenti selezionati Se io non uso la query per ottenere i dati Si prega di consulenza
<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>
Codice in materia di uscite questa pagina, ho Strunk la quantità di paesi verso il basso per questo post
<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>
Soluzione
Che ne dite di qualcosa di simile?
<?
$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>
EDIT: non ho la prova questo, ma si dovrebbe ottenere l'idea
Altri suggerimenti
Si potrebbe:
- stampare una serie di paesi come codice PHP utilizzando var_export (), e poi hardcode che da qualche parte.
- Cache i valori dal database usando qualcosa come Pear Cache_Lite - questo è molto semplice da uso e significa che se si modificano i valori nel database, tutto ciò che dovete fare è eliminare il file di cache di averlo rigenerato.
Con entrambe le opzioni di cui sopra, allora avete un array che è possibile ciclare su in un modo simile a quello che si sta facendo ora, al fine di generare il codice HTML.
Si potrebbe tamponare l'HTML statico e fare una semplice stringa di sostituire per il valore selezionato.
1) Salvare l'elenco Paese HTML in countries.html
2) Al momento del caricamento, leggere countries.html
in una variabile e fare una stringa di sostituzione:
$countries = file_get_contents('countries.html');
echo str_replace('value="'.$userCountry.'"','value="'.$userCountry.'" SELECTED',$countries);
Non è molto efficiente della memoria nel complesso, ma fa risparmiare il tempo database di colpire e di trasformazione.