데이터베이스를 사용하지 않고 국가 드롭 다운 선택 양식 항목을 선택하는 방법은 무엇입니까?

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>

Code Outputs on Page에 대한 코드, 나는이 게시물에 대한 국가의 수량을 줄였습니다.

<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 코드로 국가 배열을 인쇄 한 다음 어딘가에 하드 코드를 인쇄하십시오.
  • 같은 것을 사용하여 데이터베이스의 값을 캐시하십시오 배 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