Как выбрать элемент формы выпадения в стране без использования базы данных?
Вопрос
У меня есть этот PHP -код, который я использую для выбора выпадающей формы в стране, который я хотел бы устранить этот дополнительный запрос MySQL и просто сохранить результаты, как на коде на странице, однако я потерял, как у меня есть страна пользователей Выбрано, если я не использую запрос, чтобы получить данные, пожалуйста, советуйте
<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>
Код об выходе на странице, у меня есть количество стран для этого поста
<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>
Решение
Как насчет чего -то подобного?
<?
$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>
РЕДАКТИРОВАТЬ: Я не проверял это, но вы должны получить идею
Другие советы
Ты мог:
- Распечатайте массив стран в качестве кода PHP с помощью var_export (), а затем где -то это где -то.
- Кэшировать значения из базы данных, используя что -то вроде Груша cache_lite - Это очень просто для использования, и это означает, что если вы изменяете значения в базе данных, все, что вам нужно сделать, это удалить файл кэша, чтобы он был восстановлен.
С обоими вышеупомянутыми параметрами у вас есть массив, который вы можете перевернуть аналогично тому, что вы делаете сейчас, чтобы генерировать HTML.
Вы можете буферировать статический HTML и выполнить простую замену строки для выбранного значения.
1) Сохранить список HTML страны в countries.html
2) во время загрузки читать countries.html
в переменную и сделайте заменить строку:
$countries = file_get_contents('countries.html');
echo str_replace('value="'.$userCountry.'"','value="'.$userCountry.'" SELECTED',$countries);
Не очень эффективно память в целом, но она сохраняет время нажима и обработки базы данных.