2013-06-12 2 views
2

나는이 선택을하고 있는데, "X"라고 부르 자. SELECT를 통해 데이터베이스에서 자동차 브랜드로 채워진다.첫 번째 선택 상자 옵션에 따라 두 번째 선택 상자 채우기

<select name="X"> 
<?php 
$row = mysqli_query("SELECT * FROM brands"); 
while($row2 = mysqli_fetch_array($row)) 
echo '<option value="' . $row2['brandID'] . '">' . $row2['brandName'] . '</option> 
?> 
</select> 

"Y"라는 두 번째 선택 항목을 선택한 브랜드의 모델과 함께 채워야합니다. A4는 A6가, TT, TTS

이 채우려면 : 첫 번째 선택 상자 (X)에서 선택한 옵션이 아우디의 경우 예를 들어, 나는 다음과 같은 두 번째 선택 (Y)에 옵션으로

해야 두 번째 선택 상자는 수동으로 다른 SQL 요청을 사용하는 경우와 기본적으로 동일한 작업을 쉽게 수행 할 수 있습니다.

$row = mysqli_query("SELECT modelName from modele WHERE brandName = '$brand'"); 

여기서 $ brand는 첫 번째 선택 항목의 선택에 따른 값을 갖습니다.

감사

+1

'ajax'를 검색하고 이동하십시오. – Rikesh

답변

6
Put an id in your <select name="X"> code like <select name="X" id ="X"> 

Put another select like <select name="Y" id="Y">. Which will be blank. 

put this jquery in your page. 

$("X").on("change",function(){ 
    var x_value=$("X").val(); 
    $.ajax({ 
     url:'ajax.php', 
     data:{brand:x_value}, 
     type: 'post', 
     success : function(resp){ 
      $("#Y").html(resp);    
     }, 
     error : function(resp){} 
    }); 
}); 

in your ajax.php add the query. 

<?php 
$row = mysqli_query("SELECT modelName from modele WHERE brandName =".$_POST['brand']); 
while($row2 = mysqli_fetch_array($row)) 
    echo '<option value="' . $row2['modelId'] . '">' . $row2['modelName'] . '</option> 
?> 

희망이 작동 제공 할 수있을 것입니다. 니가 필요하면 말해줘.

+0

흠, 확실한가요? - brandName = ". $ _ POST [ 'brand']);?"$ _ POST [ 'X'] ");? – Darkkz

+0

SQL은 모두 정확하지만 여전히 두 번째 선택 항목을 채우지 않습니다. – Darkkz

+0

걱정하지 마세요, 나는 그것을 작동시킬 수있었습니다. :) $ ("X") on ("change", function() { var x_value = $ ("X"). 발();.. $ ("#의 X")로 대체 변경 (함수() { VAR x_value = $ ("#의 X")를 발();! 정말 고마워요 친구, 환호 – Darkkz

0

사용 아약스와 함께 변경 이벤트에

방법 : 1 빌드 당신이 당신의 쿼리를 게시 페이지. 2 - 해당 페이지가 쿼리에 반응하여 원하는 옵션 목록과 함께 응답을 보냅니다. 예 :

if ($_POST["vehicle"] == car) // send response with array of car names as json obj for example 
else // send response with array of motorbikes names 

당신의 아약스를 수신하고에 완성 제기를 채울한다. 당신이 더 많은 정보가 필요한 경우

, 나는 그것이