내 데이터베이스의 모든 결과를 보여주는 페이지가 있습니다. 페이지의 결과를 필터링하는 데 사용하는 페이지에 체크 상자와 텍스트 상자가 있습니다.실시간 검색 결과 표시 AJAX
확인란이 작동하므로 텍스트 상자를 선택하면 페이지의 결과가 라이브로 필터링됩니다. 이제 나는 텍스트 상자에 대해서도 같은 것을 원하지만 im은 어떻게 처리 할 것인가.
이것은 텍스트 상자에 사용하려는 텍스트 상자에 대한 내 코드입니다.
<script>
function makeTable(data) {
var tbl_body = "";
$.each(data, function() {
var tbl_row = "";
$.each(this, function(k , v) {
tbl_row += "<td>"+v+"</td>";
})
tbl_body += "<tr>"+tbl_row+"</tr>";
})
return tbl_body;
}
function getEmployeeFilterOptions(){
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.name);
}
});
return opts;
}
function updateEmployees(opts){
$.ajax({
type: "POST",
url: "submit.php",
dataType : 'json',
cache: false,
data: {filterOpts: opts},
success: function(records){
$('#employees tbody').html(makeTable(records));
}
});
}
var $checkboxes = $("input:checkbox");
$checkboxes.on("change", function(){
var opts = getEmployeeFilterOptions();
updateEmployees(opts);
});
updateEmployees();
</script>
나는 당신의 submit.php의 작품,하지만 난 당신이 "filterOpts"올바른 JSON이 반환 될 때 키워드를 보낼 수있는 가정하는 방법을 잘 모르겠습니다
<?php
$pdo = new PDO('mysql:host=localhost;dbname=records', 'root', '***');
$select = 'SELECT *';
$from = ' FROM overboekingen';
$opts = (isset($_POST['filterOpts']) ? $_POST['filterOpts'] : FALSE);
if (is_array($opts)) {
$where = ' WHERE FALSE';
if (in_array("medewerker", $opts)){
$where .= " OR medewerker = 1 ";
}
if (in_array("medewerker1", $opts)){
$where .= " OR medewerker = 2 ";
}
if (in_array("medewerker2", $opts)){
$where .= " OR medewerker = 3 ";
}
if (in_array("medewerker3", $opts)){
$where .= " OR medewerker = 4 ";
}
if (in_array("medewerker4", $opts)){
$where .= " OR medewerker = 5 ";
}
if (in_array("medewerker5", $opts)){
$where .= " OR medewerker = 6 ";
}
if (in_array("medewerker6", $opts)){
$where .= " OR medewerker = 7 ";
}
if (in_array("medewerker7", $opts)){
$where .= " OR medewerker = 8 ";
}
if (in_array("medewerker8", $opts)){
$where .= " OR medewerker = 9 ";
}
if (in_array("medewerker9", $opts)){
$where .= " OR medewerker = 10 ";
}
if (in_array("medewerker10", $opts)){
$where .= " OR medewerker = 11 ";
}
else {
$where = false;
}
$sql = $select . $from . $where;
$statement = $pdo->prepare($sql);
$statement->execute();
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($results);
echo($json);
?>
같은 것을 할 거라고, 내가 체크 박스에 사용하는 코드를 이잖아. 그것은 진실과 거짓 진술을 사용하므로 나는 이것을 텍스트 상자에 사용할 수 없다. – user3455717
텍스트 상자에 가능한 입력을 설명 할 수 있습니까? 입력 만 숫자입니까? 예를 들어 사용자가 텍스트 상자에 3을 입력하면 어디에 medewerker = 3으로 설정해야합니까? 아니면 제가 놓친 다른 검색 기준이 있습니다. 감사! – MShah
'medewerker = 3'은 체크 박스이고, 숫자는 mySQL 배열의 이름입니다. 필자는 아직 submit.php에 아무것도 없다. 그러나 텍스트 상자에 아무 것도 입력 할 수 있으며 AJAX에서 실시간 검색으로 자동 완성됩니다. 그러나 html 페이지에서 결과를 필터링하지는 않습니다. 도움 주셔서 감사합니다 btw :) – user3455717