2013-11-04 4 views
0

나는 문제가있어 더 많은 경험을 가진 사람이 나를 도울 수 있기를 바랍니다. |필터링 값 (PHP + jquery)

ID :

나는 다음과 같은 필드와 값을 가진 테이블이 유형 | 색상
---- | --------- | ----
1 | 바지 | 청색
2 | 바지 | 녹색
3 | 바지 | 빨간색
4 | 셔츠 | 눈썹
5 | 셔츠 | 핑크
6 | 셔츠 | 빨간색

내가하려는 것은 선택한 의류 유형에 따라 색상을 필터링하는 것입니다.

예 : "pants"확인란을 선택한 경우 'blue, green, red'값이 반환됩니다. " "셔츠 "확인란 만 선택한 경우 '갈색, 분홍색, 빨간색'값이 반환됩니다. 이제 두 개의 확인란을 선택하고 결과를"파란색, 갈색, 녹색, 핑크, 레드. "

아무도 내가 이것을 할 수있는 방법을 알고 있습니까?

참고 : 제 언어는 영어가 아니므로 오류가있는 경우 실례합니다.

파일 사용 :

index.php를

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Checkbox</title> 
     <script type="text/javascript" src="jquery-1.10.2.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("input[name='type']").click('change', function() { 
        $("#colors").html('Loading colors...'); 
        $.post("colors.php", {type: $(this).val()}, function(valor) { 
         $("#colors").html(valor); 
        }); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <p><?php require_once './types.php'; ?></p> 
     <p id="colors"></p> 
    </body> 
</html> 

types.php을

<?php 

require_once './connection.php'; 

$sql = "SELECT DISTINCT types FROM test"; 
$con = mysql_query($sql); 

if (mysql_num_rows($con) === 0) { 
    echo '0 result(s)'; 
} else { 
    while ($row = mysql_fetch_assoc($con)) { 
     echo '<input type="checkbox" name="type" value="' . $row['types'] . '"> ' . $row['types']; 
    } 
} 

?> 

colors.php

<?php 

require_once './connection.php'; 

$type = $_POST['type']; 

$sql = "SELECT DISTINCT colors FROM test WHERE types = '$type'"; 
$con = mysql_query($sql); 

if (mysql_num_rows($con) === 0) { 
    echo '0 result(s)'; 
} else { 
    while ($row = mysql_fetch_assoc($con)) { 
     echo $row['colors'] . '<br>'; 
    } 
} 

?> 

답변

0

이름 당신의 체크 박스 type[], 이것은 당신이 유형의 배열을 얻을 수 있습니다.

그런 다음이에 컬러 쿼리를 조정합니다

$types = "'".implode("','",array_map("mysql_real_escape_string",$_POST['type']))."'"; 
$sql = "SELECT DISTINCT `colors` FROM `test` WHERE `types` IN (".$types.")"; 
+0

와우, 빛의 속도로 응답. 내 친구 도움을 주셔서 감사합니다. – Learning