Php 当我在搜索栏中键入时,HTML页面会复制自身
我想做一个简单的搜索栏。搜索栏通过JQuery将数据发送到PHP(执行搜索)。数据通过回调函数发送回HTML。搜索功能正常工作。但是,每次我输入搜索输入时,整个页面都会复制自己。我不知道为什么会这样。数据正在从MySQL数据库中提取Php 当我在搜索栏中键入时,HTML页面会复制自身,php,jquery,html,Php,Jquery,Html,我想做一个简单的搜索栏。搜索栏通过JQuery将数据发送到PHP(执行搜索)。数据通过回调函数发送回HTML。搜索功能正常工作。但是,每次我输入搜索输入时,整个页面都会复制自己。我不知道为什么会这样。数据正在从MySQL数据库中提取 <?php session_start(); include("connection/connection.php"); if(isset($_POST['search_term'])){ $search_term = mysqli_real_esca
<?php
session_start();
include("connection/connection.php");
if(isset($_POST['search_term'])){
$search_term = mysqli_real_escape_string($db_connect,htmlentities($_POST['search_term']));
if(!empty($search_term)){
$sql_search = "SELECT first FROM students_register WHERE first LIKE '%$search_term%' ";
$result_search = $db_connect->query($sql_search);
$result_count = $result_search->num_rows;
$suffix = ($result_count != 1) ? 's' : '';
echo "<p>Your search for <strong>" .$search_term. " </strong>has returned <strong>".$result_count."</strong> result" .$suffix. "</p>";
while($results_row = $result_search->fetch_assoc()){
echo "<p><strong>".$results_row['first']."</strong></p>";
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
Search: <input id="search" name="search" placeholder="search">
<span id="search_display"></span>
</body>
<script type="text/javascript">
$("#search").keyup(function(){
var search_term = $(this).val();
$.post('test2.php', {search_term : search_term}, function(result){
$("#search_display").html(result);
});
});
</script>
</html>
搜索:
$(“#搜索”).keyup(函数(){
var search_term=$(this.val();
$.post('test2.php',{search\u term:search\u term},函数(结果){
$(“#搜索显示”).html(结果);
});
});
`这里我的问题是
test2.php
和您的html页面也是同一页面吗
试着用两页纸
<?php // test2.php
session_start();
include("connection/connection.php");
if(isset($_POST['search_term'])){
$search_term = mysqli_real_escape_string($db_connect,htmlentities($_POST['search_term']));
if(!empty($search_term)){
$sql_search = "SELECT first FROM students_register WHERE first LIKE '%$search_term%' ";
$result_search = $db_connect->query($sql_search);
$result_count = $result_search->num_rows;
$suffix = ($result_count != 1) ? 's' : '';
echo "<p>Your search for <strong>" .$search_term. " </strong>has returned <strong>".$result_count."</strong> result" .$suffix. "</p>";
while($results_row = $result_search->fetch_assoc()){
echo "<p><strong>".$results_row['first']."</strong></p>";
}
}
}
Html包含另一个页面
<!DOCTYPE html>
<html>
<head>
<title>Index.html</title>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
Search: <input id="search" name="search" placeholder="search">
<span id="search_display"></span>
Index.html
搜索:
$(“#搜索”).keyup(函数(){
var search_term=$(this.val();
$.post('test2.php',{search\u term:search\u term},函数(结果){
$(“#搜索显示”).html(结果);
});
});
原因是,您正在从test2.php请求数据,test2.php也包含html代码,因此只有它一次又一次地出现。请尝试此操作,让我知道结果。旁注:mysqli\u real\u escape\u字符串($db\u connect,htmlentities
,可以缩小范围,只需使用准备好的语句。htmlentities()
对sql注入没有任何帮助,它仅用于查看。这就像一种魅力。我将PHP和HTML分开,结果很好。感谢Alotcol…在使用ajax时请记住,在另一个文件上编写PHP代码,然后在回显
结果后,使用die
完成executePlease add评论,请点击“如果这个答案有用,请点击这里”的地方,是吗?
<script type="text/javascript">
$("#search").keyup(function(){
var search_term = $(this).val();
$.post('test2.php', {search_term : search_term}, function(result){
$("#search_display").html(result);
});
});
</script>
</html>