データベースを使用せずに国のドロップダウン選択フォームアイテムを選択する方法は?

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

  •  19-09-2019
  •  | 
  •  

質問

国のドロップダウンフォームを作成するために使用するこの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>

編集:私はこれをテストしませんでしたが、あなたはアイデアを得るべきです

他のヒント

あなたは出来る:

  • var_export()を使用してPHPコードとして国の配列を印刷し、どこかでハードコードします。
  • データベースから値をキャッシュします Pear 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);

全体的にメモリ効率はあまり効率的ではありませんが、データベースのヒットと処理時間を保存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top