Live Search не работает с использованием Bootstrap 4, PHP, MySQLi и Ajax - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь сделать живой поиск с использованием AJAX, PHP и MYSQL.User-Profile.php содержит все пользовательские данные, извлеченные из базы данных, и есть поле поиска для ввода данных, чтобы найти пользователей, чье имя начинается с «xxx»

Используя сценарий AJAX, я получаю значение из поля вводаи отправьте его в search.php, где он запрашивает базу данных и получает результат поиска.

Используя Echo Alert Я обнаружил, что search.php получает значение из сценария AJAX, но не запрашивает базу данных, чтобы показать фактический результат.

Несмотря на то, что я ищу точные данные в таблице и базе данных, он выводит как оператор условия else "NO RECORDS FOUND".

Пожалуйста, найдите мой скрипт ниже и, пожалуйста, помогите мне его решить.

1.User-Profile.php

<head>
 <script src="vendor/jquery/3.3.1/jquery.min.js"> 
 </script>
 <script src="vendor/ajax/libs/popper.js/1.14.6/umd/popper.min.js"> 
 </script>
 <script src="vendor/bootstrap/4.2.1/js/bootstrap.min.js"> 
 </script>
</head>
<div class="container-fluid">  
   <div class="row justify-content-center"><div class="form-inline">
   <label for="search" class="font-weight-bold lead">Search User</label> 
   <input type="text" name="search" id="search_text">
        </div></div>
        <div class="row">
                <div class="col-lg-12">
                    <div class="table-responsive">
                        <?php 
                        $stmt=$con->prepare("select * from user");
                        $stmt->execute();
                        $result=$stmt->get_result();
                        ?>
                    <table class="table" id="table-data">
                     <thead>
                          <tr>
                            <th>First Name</th>
                            <th>Mobile Number</th>
                            <th>Email</th>
                          </tr>
                      </thead>

                        <tbody>
                        <?php while($row=$result->fetch_assoc()){ ?>
                            <tr>
                            <td><?= $row['fname']; ?></td>
                            <td><?= $row['mobile']; ?></td>
                            <td><?= $row['miruid']; ?></td>
                            </tr>
                            <?php } ?>
                        </tbody>
                        </table></div></div></div></div>
   <script type="text/javascript">
   $(document).ready(function(){
   $("#search_text").keyup(function(){
      var search = $(this).val();
       $.ajax({
          url:'search.php',
           method:'post',
           data:{query:search},
           success:function(response){
               $("#table-data").html(response);
           }
       });
   });
});
</script>

2.search.php

<?php
require('php-includes/connect.php');
?>
<?php 
   $output='';
    if(isset($_POST['query'])){
        $search=$_POST['query'];
        $stmt =$con->prepare("select * from user where fname like 
               concat('%',?,'%')"); 
        $stmt->bind_param("ss",$search,$search);
          }else{
           $stmt = $con->prepare("select * from user");
          }
  $stmt->execute();
  $result=$stmt->get_result();
   if($result->num_rows>0){
                    $output="<thead>               
                    <tr>
                        <th>First Name</th>
                        <th>Mobile Number</th>
                        <th>Email</th>
                    </tr>
                    </thead>
                 <tbody>";
    while($row=$result->fetch_assoc()){ 
                 $output .="
                            <tr>
                              <td>".$row['fname']."</td>
                              <td>".$row['mobile']."</td>
                               <td>".$row['miruid']."</td>
                           </tr>";
                }
  $output .="</tbody>";
  echo $output;
 }else{
  echo"<h3>No Records Found!</h3>";
 }
 ?>

1 Ответ

0 голосов
/ 10 июля 2019

Я просмотрел комментарии и исправил проблему, заменив двухстрочный код ниже

1. Ошибка

$stmt =$con->prepare("select * from user where fname like concat('%',?,'%')"); 
$stmt->bind_param("ss",$search,$search);

2. Решение

$stmt =$con->prepare("select * from user where fname like '%".$search."%'"); 
//Removed this line code $stmt->bind_param("ss",$search,$search);//
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...