【发布时间】:2017-06-02 14:09:05
【问题描述】:
我正在创建一个高级搜索,用户可以在其中选择(html 选择)一个类别(使用GROUP BY 和HAVING 过滤结果),然后他们可以输入输入以使用LIKE 查找结果在数据库中有多个列。
我没有收到任何错误,但是没有返回正确的数据 select(html) 返回不相关的结果并且输入没有返回任何内容,因此,我很确定问题出在 Candidate_search.php 中的 SQL 查询
HTML:
<form action="" class="serach_form" method="post">
<select id="" name="cv_category" class="cv_category">
<option value="category1">category 1 </option>
<option value="category2">category 2</option>
</select>
<input type="search" class="search_input" placeholder="Search" />
</form>
AJAX:
$('.serach_form').change(function() {
var $search_input = $('.search_input').val();
var $cv_category = $('.cv_category').val();
var url = "candidate_search.php";
$.ajax({
//create an ajax request to load_page.php
type: "POST",
url: url,
data:{
search_input: $search_input, cv_category: $cv_category
},
dataType: "html", //expect html to be returned
success: function(date) {
$('#search_data').html(date);
}
})
});
PHP: (candidate_search.php)
<?php
include 'db_connect.php';
$search_input = $_POST['search_input'];
$cv_category = $_POST['cv_category'];
if(isset($search_input) || (isset($cv_category))){
$sql = $dbh->prepare("SELECT * FROM candidates_table WHERE full_name LIKE :search_input AND phone_number LIKE :search_input AND email_address LIKE :search_input AND id LIKE :search_input GROUP BY cv_category HAVING :cv_category");
$sql->bindValue(':search_input', '%' . $search_input . '%', PDO::PARAM_STR);
$sql->bindValue(':cv_category', '%' . $cv_category . '%', PDO::PARAM_STR);
if($sql->execute()) {
$sql->setFetchMode(PDO::FETCH_ASSOC);
}
while($row = $sql->fetch()) {
// Do something ..... //
} // End of whileloop //
} // end of isset // ?>
【问题讨论】:
-
嗨,鲍勃,因为您使用的是 ajax,您是否正在回显输出?
-
@NishantNair 抱歉,我刚刚看到您的评论,我正在将数据返回到关于 AJAX 成功功能的 div 中。在 while 循环中,我有 html 结构,并且在其中我在 php 中回显数据。