2016-12-01 2 views
0

세 개의 체크 박스 옵션이있는 페이지가 있습니다. 이 세 가지 확인란을 데이터 필터로 사용하고 싶습니다. 사용자가 수동으로 양식을 제출하면 세 개의 확인란이 필터링됩니다.AJAX 호출을 시도하는 중

제출 버튼을 제거하고 싶습니다. 사용자가 내 양식에서 옵션 중 하나를 선택할 때마다 옵션이 아약스로 전송됩니다. 현재, 내 코드는 선택된 마지막 체크 박스 만 전송합니다. 왜냐하면 검색 결과 this.value가 있기 때문입니다. 내 양식의 모든 체크 박스를 반복하여 이것을 어떻게 전송하는지 잘 모르겠습니다. 두 번째 문제는 fetch.php가 특정 사용자 이름과 암호가 세션 변수에 적절하게 설정되어있는 경우 데이터를 검색하기 위해 데이터베이스에 연결하는 '안전한'페이지입니다. 가져 오기 페이지를 ajax로 호출하면 클라이언트의 범위를 벗어난이 페이지에 액세스하는 것으로 간주합니다. 즉, 사용자가 ajax를 호출하는 페이지에서 로그인 한 경우에도 자격 증명을 통과하지 못합니다. 그 맞습니까? 이 문제를 해결하기 위해 데이터 라인을 통해 사용자 이름 암호를 전달하려고 시도했는데 여러 매개 변수에 대해 올바르게 데이터 라인을 설정 했습니까?

<form id="form"> 
    <div class="filterblock"> 
      <input id="check1" type="checkbox" name="search[]" value="Cars" class="category"> 
     <label for="check1">Cars</label> 
    </div> 

    <div class="filterblock"> 
      <input id="check2" type="checkbox" name="search[]" value="Trucks" class="category"> 
     <label for="check2">Trucks</label> 
    </div> 

    <div class="filterblock"> 
      <input id="check3" type="checkbox" name="search[]" value="Bikes" class="category"> 
     <label for="check3">Bikes</label> 
    </div> 
    <input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" /> 

    </form> 

AJAX 호출

$('.category').change(function() { 

    var user = <?php echo $_SESSION['login']['logged_username'] ;?>; 
    var pass = <?php echo $_SESSION['login']['logged_password'] ;?>; 

$.ajax({ 
    url: fetch.php', 
    type: 'POST', 
    data: {search: this.value, user: user, pass: pass}, 
dataType:'html', 
    success:function(data) 
    { 
     $('#result').html(data); 
    } 

    }); 
}); 
+0

두 가지. 라디오 버튼 대신 체크 박스 (다중 선택)를 사용하고 있습니까? (단일 선택). 또한이''은 Javascript를 인용 부호로 묶어야하기 때문에 실패합니다. –

+0

예, 여러 선택 항목에 대한 확인란을 사용하고 있습니다. fetch.php 페이지에서 내 검색어에 여러 선택 사항을 처리합니다. – JK36

답변

0

이 당신의 목표에 근접 할 수도 있습니다. 모든 양식 데이터를 가져 오려면 jQuery.serialize()을 사용하십시오.

$('.category').change(function() { 

    var user = "<?php echo $_SESSION['login ']['logged_username '] ;?>"; 
    var pass = "<?php echo $_SESSION['login ']['logged_password '] ;?>"; 

    var data = $('#form').serialize(); 
    data.user = user; 
    data.pass = pass; 
    data.search = this.value; 
    $.ajax({ 
     url: fetch.php ', 
     type: 'POST', 
     data: data, 
     success: function(data) { 
      $('#result').html(data); 
     } 

    }); 
}); 
+0

코드 네이 일 감사합니다. 사용자를 가져 오지 못하고 데이터를 설정하기 위해 전달했지만, 리터럴 문자열을 제거했습니다. PHP는 그것을 시도하지만 작동하지 않았다. 결국 알아 냈어. 나는 그들을 필요로하지 않는다는 것을 깨달았다. 검색 기준을 통과하면됩니다. – JK36

관련 문제