2011-09-03 2 views
0

둘 다 내 데이터베이스에서 해당 값을 가져 오는 두 개의 드롭 다운 메뉴가 있습니다.다른 드롭 다운 목록에 영향을주는 드롭 다운 목록 - PHP 쿼리 사용

2 개의 드롭 다운은 - 타운 & 카운티입니다.

분명히 특정 도시 만 특정 카운티와 관련됩니다. 이를 포착하기 위해

, 그들은 같은 데이터베이스에 저장됩니다

  1. 리즈, 몰리
  2. 리즈, 채플 타운 등
  3. 런던,에 섹스 ..

사용자가 County를 먼저 선택하도록 강요해야합니다 (비활성화/사용 설정). 어떻게 카운티의 선택에, 나는 데이터베이스에서 관련 '타운'값으로 두 번째 드롭 다운 상자를 새로 고쳐야합니다.

'마을 얻기'에 대한 현재의 코드는 다음과 같은 수 있습니다 :

echo "<option value='0' >Choose a Town</option>"; 
$town_se=$_SESSION['town']; 
if(isset($county_se)){ 
    $locat=mysql_query("SELECT DISTINCT town_name FROM locations WHERE county_name='$county_se'"); 
}else{ 
    $locat=mysql_query("SELECT DISTINCT town_name FROM locations "); 
} 
while($row=mysql_fetch_assoc($locat)){ 
    $town=$row['town_name']; 
    echo "<option value='$town' >$town</option>"; 
} 

물론,이 작동하지 않습니다! 첫 번째 드롭 다운 결과를 복제하는 간단한 방법이 있습니까?

미리 감사드립니다.

답변

1

예제 코드에서 무슨 일이 벌어지고 있는지 디코딩하는 데 어려움을 겪고 있습니다. 그러나 우리가 같은 페이지에 있는지 확인하기 위해 ... PHP는 서버 측이고 HTML은 클라이언트 측입니다. 두 사람은 새로운 페이지 요청, 자바 스크립트 또는 AJAX와 같이 중간에서 상호 작용할 수 없습니다.

제시하는 데이터의 크기가 적당한 경우 처음부터 HTML에 모든 데이터를 넣는 것이 좋지만 숨기는 것이 좋습니다. 즉, 모든 카운티의 마을에 대해 하나의 드롭 다운을 만들지 만 사용자가 카운티를 선택할 때까지 모두 숨 깁니다. (JavaScript가 약간 필요함)

또 다른 일반적인 해결책은 사용자가 카운티를 선택할 때 페이지를 제출 (새로 고침)하기 만하면 해당 카운티의 마을로 채워진 마을 드롭 다운이있는 새 페이지를 생성하는 것입니다. (약간의 자바 스크립트 필요)

정말로 첨단 기술을 사용하려면 AJAX를 사용하고 사용자가 카운티를 선택할 때 두 번째 드롭 다운으로 데이터를 동적으로로드 할 수 있습니다. PHP와 JS에 대해 꽤 잘 이해하고 있어야합니다.