Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我在搜索栏中键入时,HTML页面会复制自身_Php_Jquery_Html - Fatal编程技术网

Php 当我在搜索栏中键入时,HTML页面会复制自身

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

我想做一个简单的搜索栏。搜索栏通过JQuery将数据发送到PHP(执行搜索)。数据通过回调函数发送回HTML。搜索功能正常工作。但是,每次我输入搜索输入时,整个页面都会复制自己。我不知道为什么会这样。数据正在从MySQL数据库中提取

<?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>