2016-07-16 6 views
0

OK, 내 양식은 다음과 같습니다방법 jQuery를 아약스 여러 선택

<form> 

<select name="students" id="students"> 
<option value="0">Select Value First</option> 
<option value="a">Value A</option> 
<option value="b">Value B</option> 
<option value="c">Value C</option> 
</select> 
<br /><br /> 
<select name="house" id="house"> 
<option value="0">Select Value Second</option> 
<option value="a">Value A</option> 
<option value="b">Value B</option> 
<option value="c">Value C</option> 
</select> 
<br /><br /> 
<select name="location" id="location"> 
<option value="0">Select Value Third</option> 
<option value="a">Value A</option> 
<option value="b">Value B</option> 
<option value="c">Value C</option> 
</select> 
<br /><br /> 

</form> 

내 jQuery를은 다음과 같습니다

$(document).on("change","select",function() { 
$val1 = $(this).val(); 
$val2 = $(this).attr('name'); 
    $.get("selectdata.php",{"name":$val2,"id":$val1},function($data){ 
      $("#result").html($data); 
     }); 
}); 

내가 달성하고자하는 것은 : 페이지가로드가 모든 학생들을 표시 할 필요가있는 경우 . 그래서 내 질문은 : 선택에서 어떤 옵션을 선택하면

SELECT * 
FROM 'mytable' 
WHERE 'students' = 'students.val()' AND 'house'='house.val()' 
    AND 'location'='location.val()'; 

는 해당 값은 SELECT 성명을 변경해야합니다. SELECT 집에서 아무것도 변경한다면, 예를 들어, 새로운 SELECT 문은 다음과 같습니다이 후

SELECT * 
FROM 'mytable' 
WHERE 'students' = 'students.val()' 
    AND 'house' = 'changedVALUE' 
    AND 'location' = 'location.val()';` 

SELECT LOCATION에서 어떤 조건으로 기존 SELECT으로 만 위치 값이 전달되어야 변경된다 이전 작업에서 선택한 집.

기본적으로 나는 이전 조건을 그대로 유지하고 새 조건을 SELECT 변경으로 전달합니다.

내 문제를 설명 할 수 있기를 바랍니다. jQuery/PHP 쿼리를 만드는 방법을 모르겠습니다.

감사합니다.

답변

0

귀하의 JQuery와는 다음과 같이해야합니다 :

$("#students, #house, #location").on("change", function(){ 
    var students = $("#students").val(); 
    var house = $("#house").val(); 
    var location = $("#location").val(); 
    $.ajax({ 
    type: "POST", 
    url: 'selectdata.php', 
    data : { 'students': students, 'house':house, 'location':location }, 
    success: function(data){ 
     $("#result").html(data); 
    } 
    }); 
}); 

그런 다음 selectdata.php

<?php 
    $students = $_POST['students']; 
    $house = $_POST['house']; 
    $location = $_POST['location']; 

    //sql query 
    $sql = "SELECT * FROM 'mytable' WHERE 'students'= $students AND 'house'= $house AND 'location'= $location;" 
?> 

편집

JQuery와 같아야합니다

그리고 selectdata.php

<?php 
    $students = $_POST['students']; 
    $house = $_POST['house']; 
    $location = $_POST['location']; 

    $conditions = array(); //initialize array for conditions in the where clause 
    if($students != 0){ //if value is not equal to 0, add to array. 
     $conditions[] = "students = " . $students; 
    } 
    if($house != 0){ //if value is not equal to 0, add to array. 
     $conditions[] = "house = " . $house; 
    } 
    if($location!= 0){ //if value is not equal to 0, add to array. 
     $conditions[] = "location = " . $location; 
    } 

    $where = ""; 
    if(count($conditions) > 0){ //if array is not empty 
     $where = "WHERE " . implode(" AND ", $conditions); // sample output: "WHERE students = 1 AND house = 2 AND location = 3" 
    } 

    //now your sql 
    $sql = "SELECT * FROM 'mytable' " . $where; // "SELECT * FROM 'mytable' WHERE students = 1 AND house = 2 AND location = 3" 
    // if the $condition array is empty, the sql should look like this: "SELECT * from 'mytable'" 
+0

마스터 감사합니다. 정확히 내가 원했던 것. 단 하나의 어리석은 질문. if 문에 어떻게 중첩 시켜서 아무것도 선택하지 않으면 selectdata.php가 여전히 결과 div에 표시되어야합니다.엄청 고마워. – Somename

+0

아무것도 선택하지 않았다는 의미입니까? –

+0

기본 선택이 '값 첫 번째 선택', '값 선택 초', '세 번째 값 선택', 값 모두 0 인 것을 의미합니다. 그래서 내 selectdata.php에서 나는 모든 결과를 보여줄 것이고, 나는 결과 div에 디폴트로 나타나길 원한다. 선택이 변경되면 솔루션이 완벽하게 작동합니다. – Somename

0

SELECT * FROM 'mytable'WHERE 'students'= 'students.val()'AND 'house'= 'changedVALUE'AND 'location'= 'location.val()';

'' 내부 테이블 & 열 이름을 사용하는 위의 쿼리에서

업데이트되었습니다. 올바른 구문은 다음과 같습니다

SELECT * FROM mytable WHERE students='students.val()' && house='changedVALUE' && location='location.val()'; 

및 자바 스크립트에, 변수를 만들기위한, 대신이 PHP.Your 코드에 사용 된 있기 때문에 많은 실수를 포함 $를 사용하는 var를 사용합니다.

+0

덕분에. 그러나 이것은 단지 의사 코드입니다. jquery 구조에 대한 도움을 원합니다. – Somename