2011-01-12 6 views
1

내가 가진 것은 데이터베이스에서 사용 가능한 방의 드롭 다운입니다. 클래스 룸 1과 마찬가지로 최대 용량이 따라 와서 클래스 룸 1 (28), 클래스 룸 2 (30) 등등이됩니다. 이 드롭 다운 목록 위에는 등록한 학생 수를 입력하는 텍스트 상자가있어서 아무 키나 입력 할 수 있습니다.PHP와 자바 스크립트

내 질문은 텍스트 상자에 입력 한 숫자에 맞지 않는 강의실을 제거하려면 어떻게해야합니까? 그래서 30을 입력하고 드롭 다운 목록을 클릭하면 Classroom 1 (28)이 더 이상 존재하지 않고 대신 Classroom 2 (30)가 나열됩니다.

+0

처럼 보일 것입니다. – markus

답변

3

먼저 텍스트가 바뀔 때 트리거되는 이벤트가 텍스트 상자에 필요합니다.

그런 다음 각 옵션을 반복해야합니다. 텍스트 상자 값이 구문 분석 된 클래스 룸 크기 값보다 큰 경우 옵션을 숨 깁니다.

여기에서 Jquery가 유용합니다.

내 생각에 이것은 SQL 또는 아약스 문제가 아닙니다. 기존 강의실을 모두 가져 와서 선택 항목으로 사용할 수있게하려는 다음 사용자가 입력란에 입력 한 내용을 기반으로 선택 항목을 필터링합니다.

JQuery와는 AJAX에 대해 읽을 필요가 있음을 보여줍니다 아주 일반적인 질문이

$('#Count_textbox').change(function(event) 
{ 
    var countValue=$(this).val(); 

    //loops through each option 
    $('#classroom_select').find('option').each(function(index) 
    { 
    //write parseOutValue to get the value out of the string of text 
    var classroomValue=parseOutValue($(this).text()); 

    if(countValue > classroomValue) 
    { 
     $(this).attr("disabled","disabled"); 

    } 
    else 
    { 
     $(this).attr("disabled",""); 
    } 
    } 
}); 
+0

엔트리 클라이언트 측을 루핑하는 또 다른 방법은 유형 번호가있는 AJAX 요청을 서버에 보내서 충분히 큰 공간의 DB를 쿼리하고 새 선택을 다시 전송하는 PHP 메소드를 호출하는 것입니다. – markus

+0

jquery가 있지만 코드 표시 방법을 보여줄 방법이 확실하지 않습니다. $ roomarray =는 mysql_query ("SELECT * * FROM 을 (SELECT CASE 언제 유형 THEN = '교실'1 언제 유형 = '컴퓨터 실험실'THEN 2 언제 형 = '강당'THEN 3 언제 유형 = '강당'THEN 4 끝 AS ClassTypeValue 객실 ) t ORDER BY ClassTypeValue, maxppl, roomID "); echo "