2012-05-12 2 views
0

정말 혼란 스럽습니다. 나는 SQL 데이터베이스에서 정보를 사용하여 선택 드롭 다운 메뉴를 만들고 싶습니다. 모든 것은 훌륭하게 작동하지만 한 가지 질문이 있습니다. 사용자가 선택을 변경할 때마다 선택 드롭 다운을 어떻게 업데이트합니까? 질문은 정말 혼란스럽고 정말 그것을 설명하는 방법을 모른다. PHP 코드를 설정 한 다음 내 페이지에 넣습니다. 여기에 코드입니다 : 지금sql 정보로 선택 드롭 다운 (html) 업데이트

<?php 
    //creating a function to generate the second select menu 
function createNameSelect(){ 
$options = "<select id='name'>" 
$sql = "SELECT * FROM names WHERE category = 'c'"; 
$result = mysql_query($sql); 

$options.=" 
    <option value='nothing'>-- select an option --</option> 
"; 

while ($row=mysql_fetch_array($result)){ 
    $name=$row['name']; 
    $options.=" 
    <option value='$name'>$name</option> 
"; 
} 

$options.="</select>"; 

return "$options"; 

} 
?> 



<!DOCTYPE html> 
.... 
<select id = c> 
    <option value ='1'>option 1</option> 
    <option value ='2'>option 2</option> 
    <option value ='3'>option 3</option> 
</select> 
<?php createNameSelect(); ?> 

.... 
</html> 

, 그것은 완벽하지만, 그것은 첫 번째 다음에 선택 메뉴를 업데이트하지 않습니다 작동합니다. 기본 옵션에서 생성 된 메뉴가 계속 표시됩니다. 문제를 해결하기 위해 무엇을 할 수 있습니까? 거기에 js 솔루션이 있습니까?

감사합니다.

+0

첫 번째 ' 두 번째 선택은 쿼리를 업데이트하고 페이지를 새로 고침하지 않고 다시 생성됩니다. – Baruch

답변

0

PHP의에 변경된 값을 저장 -가에 정확하게 한 번 실행됩니다 서버로 전송되고 출력은 클라이언트 (뷰어 브라우저)로 전송됩니다. 따라서 사용자가 첫 번째 선택을 변경하면 PHP 함수를 계속해서 호출 할 수 없습니다.

첫 번째 선택에 대한 유효한 옵션이 주어지면 별도의 PHP 파일을 만들어 두 번째 선택을위한 코드를 인쇄합니다. 그런 다음 AJAX를 사용하여 jQuery .get() 함수를 사용하여 PHP 파일을 호출하고 두 번째 선택의 내용을 얻은 결과로 바꾼다.

0

는 서버 측 스크립트입니다이

<select id = c ONCHANGE="location = this.options[this.selectedIndex].value;"> 

전화 아약스를 시도하고 DB

instand

<select id = c>