veritabanı kullanmadan bir ülke açılan seçim formu öğeyi almak için nasıl?

3 Cevap php

I have this PHP code that I use to make a dropdown form selection of country's I would like to eliminate this extra mysql query though and just store the output like in code to on the page However I am lost on how I would have the users country SELECTED If I do not use the query to get the data Please advice

<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>

Çıkışların yaklaşık Kod Bu sayfada, ben bu yazı için aşağı ülkelerin miktar Strunk var

<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>

3 Cevap

Nasıl böyle bir şey?

<?
$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: I did not test this but you should get the idea

Şunları yapabilirsiniz:

  • ) (var_export kullanarak PHP kodu gibi ülkelerde bir dizi baskı, ve sonra bir yerlerde kodlamalısınız.
  • Bu kullanımı çok basittir ve bu veritabanındaki değerleri değiştirirseniz, yapmanız gereken her şeyi yeniden var önbellek dosyayı silmek demektir - Pear Cache_Lite gibi bir şey kullanarak veritabanından değerleri önbelleğe .

Hem yukarıdaki seçeneklerle, daha sonra bir dizi var hangi size html oluşturmak amacıyla şimdi ne yapıyorsun benzer bir şekilde döngü üzerinde olabilir.

Sen statik html tampon olabilir ve basit bir dize seçilen değer için değiştiririm.

1) countries.html içine ülkenin HTML listesini kaydet

2) Yük zamanda, okuma countries.html bir değişken ve bir dize değiştirme yapın:

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

Değil çok bellek genel verimli, ancak veritabanı isabet ve işleme zamandan tasarruf yok.