【发布时间】:2017-06-05 16:52:01
【问题描述】:
我有一个使用 PHP jQuery 和 ajax 的简单 ajax 实时搜索脚本。这一切都很好,但输入框没有完全清除,所以结果框不会消失,除非我手动清除它..
JS -
<script type="text/javascript">
$(document).ready(function(){
$('.search-box input[type="text"]').on("keyup input", function(){
/* Get input value on change */
var inputVal = $(this).val();
var resultDropdown = $(this).siblings(".result");
if(inputVal.length){
$.get("backend-search.php", {term: inputVal}).done(function(data){
// Display the returned data in browser
resultDropdown.html(data);
});
} else{
resultDropdown.empty();
}
});
// Set search input value on click of result item
$(document).on("click", ".result", function(){
$(this).parents(".search-box").find('input[type="text"]').val($(this).text());
$(this).parent(".result").empty();
});
});
</script>
PHP -
$user = $_GET['user'];
$term = mysqli_real_escape_string($conn, $_REQUEST['term']);
if(isset($term)){
// Attempt select query execution
$sql = "SELECT * FROM prospects WHERE dealer_name LIKE '" . $term . "%'";
if($result = mysqli_query($conn, $sql)){
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$dealer_name = $row['dealer_name'];
echo "<form method='post' class='editForm'>
<input type='hidden' name='dealer' value='$dealer_name'/>
<input type='submit' id='subDealer' value='$dealer_name'/>
</form>";
}
// Close result set
} else{
echo "<p>No matches found</p>";
}
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
}
}
HTML -
<div class="search-box">
<input type="text" id="searchBox" autocomplete="off" placeholder="Search dealer..." />
<div class="result"></div>
</div>
就像它说的那样,这一切都有效,但输入字段 (#searchBox) 中有空白空格,这将不允许清除 .result..
谢谢!
【问题讨论】:
-
哪里涉及到php?
-
对不起,我会尽快添加它
-
我可以得到哪里是你的问题,如果
if(inputVal.length){在这?还是在点击事件$(this).parent(".result").empty();? -
如果你想在你的值的开头和结尾删除空格,你可以使用 trim(), $(this).val().trim( )
-
@Jeff 是的
标签: javascript jquery ajax