저는 현재 딜레마에 직면 해 있습니다. 데이터베이스의 데이터 배열을 표시하는 메뉴를 작성하려고합니다. 그런 다음 사용자는 해당 목록에서 항목을 선택하고 이에 따라이 항목과 관련된 데이터를 검색하기 위해 데이터베이스 호출을해야합니다. 여기에 현재 코드가 있습니다.PHP와 SQL을 사용하여 하위 목록으로 만들기
function foobar() {
$first_option_sql = "SELECT * from {location} l ORDER BY name ASC";
$list_first_option = db_query($first_option_sql);
$output .= "<p><b>Please select the primary location that you would like to check.</b><p>"
$output .= "<br><b>Location: </b> <select id='list'><option>Available locations</option>";
while($first_option_available = db_fetch_object($list_first_option)){
$output .="<option locationid='$first_option_available->lid'>".$first_option_available->name."</option>";
}
$output .="</select><input type=submit value='Search'>";
$output .="<p><b>Children: </b><select id='child'><option selected='yes'>Available children</option><p>";
$children_available_sql = "SELECT complexquery WHERE lid='%d' ORDER BY l.name ASC";
$list_children = db_query($children_available_sql);
while($children_available = db_fetcj_object($list_children)){
$output .="<option>".$children_available->name."</option>";
}
return $output;
}
여기에서 문제가이 코드를 사용하여 선택한 "첫 번째 옵션"결코 실제로 일어나고없는 두 번째 쿼리의 값을 검색 할 수 없습니다 오전; 두 번째 목록을 채우지 않습니다.
AJAX 또는 Javascript를 사용하려고 생각했지만 너무 익숙하지 않습니다. 따라서 나는 이것을 어떻게 수행 할 수 있는지에 대한 통찰력을 원했다.
PHP 만 사용하는 경우 PHP가 서버 측에서 처리되므로 양식을 제출하고 페이지를 다시 표시하지 않으면 실제로이 작업을 수행 할 수 없습니다. Ajax를 사용하면 훨씬 더 효과적으로 Ajax를 사용하여 선택한 첫 번째 옵션을 두 번째 목록의 값을 포함하는 db 요청에서 JSON 데이터를 반환하는 PHP 페이지로 전달할 수있다. – julio
저는 AJAX에 너무 익숙하지 않아서 이것이 어떻게 할 수 있는지 궁금합니다. 기본적으로 PHP를 사용하여 웹 페이지를 생성하므로이 함수를 다른 것으로 연결하는 것이 더 나을 것이라고 생각합니다. – Hectron
그러면 양식을 첫 번째 옵션 목록의 onChange에 제출하고 첫 번째 선택 목록의 값을 POST 또는 GET 매개 변수로 전달합니다. 그런 다음 페이지의 머리 부분에서 해당 매개 변수가 '설정'되어 있는지 확인하십시오. 그럴 경우 양식이 제출되었음을 알게되고이 값을 사용하여 두 번째 선택 목록 조회가 시작됩니다. – julio