2017-02-23 1 views
0

아약스 요청을 가져 오는 데이터를 정렬하려고하는데 체크 된 범주를 하나만 누른 대신 2/3을 모두 얻는 것이 좋을 것입니다. 확인 했습니까?여러 범주를 AJAX로 값으로 정렬

현재 "kategori"아래의 데이터베이스에 번호를 삽입하고이 번호를 통해 정렬해야합니까?

어떻게하면 URL에서 두 가지 쿼리를 모두 얻을 수 있습니까? 여기

예 : http://xch07.wi2.sde.dk/sandbox/SQL/

HTML

<form> 
    <input class="kategorier" type="checkbox" value="1">Kat 1<br> 
    <input class="kategorier" type="checkbox" value="2">Kat 2 <br> 
    <input class="kategorier" type="checkbox" value="3">Kat 3 
</form> 
<br> 
<div id="txtHint">Person info will be listed here... 
</div> 

는 JS/AJAX

var kategorier = document.getElementsByClassName("kategorier"); 
var kategorierLength = kategorier.length; 

for(let i=0; i < kategorierLength ;i++){ 
    kategorier[i].addEventListener('click', function(){ 
    showUser(this.value); 
    }); 
}; 

function showUser(str) { 
    if (str == "") { 
     document.getElementById("txtHint").innerHTML = ""; 
     return; 
    } else { 
     if (window.XMLHttpRequest) { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp = new XMLHttpRequest(); 
     } else { 
      // code for IE6, IE5 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (this.readyState == 4 && this.status == 200) { 
       document.getElementById("txtHint").innerHTML = this.responseText; 
      } 
     }; 
     xmlhttp.open("GET","index.php?page=getuser&kategori="+str ,true); 
     xmlhttp.send(); 
    } 
} 

PHP

$kategori = intval($_GET['kategori']); 
mysqli_select_db($dbCon,"ajax_demo"); 
$sql="SELECT * FROM db_test WHERE kategori = $kategori "; 
$result = $dbCon->query($sql); 

echo "<table> 
<tr> 
<th>Id</th> 
<th>Navn</th> 
<th>Efternavn</th> 
<th>email</th> 
<th>Kategori</th> 
</tr>"; 
while($row = $result->fetch_object()) { 
    $id = $row->id; 
    $navn = $row->navn; 
    $efternavn = $row->efternavn; 
    $email = $row->email; 
    $kategori = $row->kategori; 

    echo "<tr>"; 
    echo "<td>" . $id . "</td>"; 
    echo "<td>" . $navn . "</td>"; 
    echo "<td>" . $efternavn . "</td>"; 
    echo "<td>" . $email . "</td>"; 
    echo "<td>" . $kategori . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

답변

2
<script type="text/javascript"> 
window.onload = function() { 

    var kategorier = document.getElementsByClassName("kategorier"); 
    var kategorierLength = kategorier.length; 

    for(var i=0; i < kategorierLength ;i++){ 
     kategorier[i].addEventListener('click', function(){ 

      var checked = ''; 

      for (var k = 0; k < kategorierLength; k++) { 

       if (checked) { 
        var separator = ','; 
       } else { 
        var separator = ''; 
       } 

       if (kategorier[k].checked) { 
        checked += separator+kategorier[k].value; 
       } 
      } 
      alert(checked); 
      if (checked) { 
       showUser(checked); 
      } 
     }); 
    } 
} 
,745,

그런 다음 쿼리를 변경하고 아래의 IN 문을 사용해야합니다.

$kategori = $_GET['kategori']; 
mysqli_select_db($dbCon,"ajax_demo"); 
$sql="SELECT * FROM db_test WHERE kategori IN ($kategori)"; 
$result = $dbCon->query($sql); 
+0

그래서이 IN SQL에는 여러 카테고리가 있다는 것을 어떻게 알 수 있습니까? 예전과 똑같이 작동하는 것 같습니까? :) –

+0

$ _GET [ 'kategori']를 PHP 파일로 인쇄 할 수 있습니까?, 쉼표로 구분 된 문자열이어야합니다. :) –

+0

확실히 1 초,이 예제에서 Js를 사용할 수 있습니까? 나는 jQuery를 사용하지 않으려 고합니다 :) 업데이트해야합니다 –