Как получить результаты поиска AJAX? - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь выяснить, как отправить результаты поиска AJAX, но это не работает. Я хочу вернуть результаты обратно на веб-сайт после поиска, я думаю, что моя проблема связана с запросом SQL, но я не могу это выяснить.

Это мой php код:

<?php
include('db_conn.php');

$output="";

  $search = mysqli_real_escape_string($mysqli,$_POST["search_text"]);
  $query = "SELECT * FROM unit
  WHERE id LIKE '%$search%'
  OR unit_code LIKE '%$search%'
  OR unit_name LIKE '%$search%'
  OR lecturer LIKE '%$search%'
  OR semester LIKE '%$search%'
  ";
$result = mysqli_query($mysqli,$query);
if(mysqli_num_rows($result) > 0){
  $output .='<div class="table-responsive">
   <table class="table table bordered">
    <tr>
     <th>ID</th>
     <th>Unit Code</th>
     <th>Unit Name</th>
     <th>Lecturer</th>
     <th>Semester</th>
    </tr>
       ';
  while($row = mysqli_fetch_array($result)){
    $output.='
       <td>'.$row["id"].'</td>
       <td>'.$row["unit_code"].'</td>
       <td>'.$row["unit_name"].'</td>
       <td>'.$row["lecturer"].'</td>
       <td>'.$row["semester"].'</td>
    </tr>
    ';
  }
  echo $output;
}
else {
  echo 'Error php';
}

 ?>

А это ajax:

   <script type="text/javascript">
        $('#search_button').click(function(){
          var keywords = $('#search_text').val().trim();
          $.get("search.php",
                {keywords:keywords}).done(function(data){
                  alert('test');
                  $('#result').html(data);
                });
        });
       </script>

1 Ответ

0 голосов
/ 02 мая 2020

Я считаю, что ваша проблема в том, что вы используете $ .get, но вы пытаетесь получить значение в вашем PHP из переменной $ _POST, в которой ничего не будет, она будет в переменной $ _GET.

Я предлагаю вам изменить ajax вызов на использование $. ajax

<script type="text/javascript">
  $('#search_button').click(function(){
    var keywords = $('#search_text').val().trim();
    $.ajax({
      url: "search.php",
      data: {search_text: keywords},
      method: 'POST',
      success:function(data){
        $('#result').html(data);
      },
  });
</script>

Первый ключ в массиве данных должен совпадать с ключом, который вы используете в PHP для сбора значение от $ _POST

...