데이터베이스를 사용하지 않고 국가 드롭 다운 선택 양식 항목을 선택하는 방법은 무엇입니까?
문제
나는 국가의 드롭 다운 양식을 만들기 위해 사용하는이 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);
전체적으로 메모리 효율적이지는 않지만 데이터베이스 적중 및 처리 시간을 절약합니다.
제휴하지 않습니다 StackOverflow