Быстрые SQL кнопки запроса с ajax обновлением - PullRequest
0 голосов
/ 25 апреля 2020

Будучи еще новичком на практике с Php и SQL, я спрашиваю вас, можно ли отфильтровать результаты по ключевым словам. На практике у меня есть таблица ценностей, в которой хранятся учебные курсы и учебные темы. Нажав на ключевые слова, такие как «наука», «программирование», «математика», я хотел бы выполнить запрос SQL результатов, отображая все содержимое, содержащее эти слова, в столбце «Название курса» и в « Столбец topi c 'курса.

primaryKey | Course name |   Course topic
-----------+-------------+-------------------------------------------
1          |   Math 1    |   Algebra, equations
2          |   Math 2    |   Differential equations, integrals
3          |   Physics   |   Physical Mechanics, thermodynamics
4          |   Chemistry |   Chemical equations, algebra, geometry

На данный момент я создал скрипт для извлечения информации из БД и поиска по ней

Что мне нужно сделать sh это создать «кнопки быстрого запроса» для поиска элементов в БД, например

+-----------+   +------------+  
|  algebra  |   | equations  |  
+-----------+   +------------+  

в качестве предложений для запроса БД.

Заранее спасибо тем, кто мне поможет

ОБНОВЛЕНИЕ:

код сценария в индексе. php

<script>
$(document).ready(function(){
load_data();
function load_data(query)
{
    $.ajax({
        url:"fetch.php",
        method:"post",
        data:{query:query},
        success:function(data)
        {
            $('#result').html(data);
        }
    });
}

$('#search_text').keyup(function(){
    var search = $(this).val();
    if(search != '')
    {
        load_data(search);
    }
    else
    {
        load_data();            
    }
  });
});
</script>

fetch. php file

<?php
$connect = mysqli_connect("x", "x", "x", "dbName");
$output = '';
if(isset($_POST["query"]))
{
$search = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "
SELECT * FROM dbName 
WHERE CName LIKE '%".$search."%'
OR CTopic LIKE '%".$search."%' 
";
}
else
{
$query = "
SELECT * FROM dbName ORDER BY CName";
}
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{

while($row = mysqli_fetch_array($result)):
$name = $row['CName'];
$topic = $row['CTopic'];

echo "<div class='content'>
            <div>
              <input type='checkbox' id='name' name='q' class='name'>
              <label for='name' class='names'>
                $name
              </label>
              <div class='topics'>
                $topic
              </div>

            </div>
        </div>";
endwhile;
}
}
else
{
echo 'Element not found';
}
?>

1 Ответ

0 голосов
/ 25 апреля 2020

Для ajax запроса

1.Включить Jquery Библиотека на вашей веб-странице. например:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

2. Вызов функции при нажатии кнопки

<button type="button" onclick="create()">Click Me</button>

3. При нажатии на кнопку вызовите функцию создания в javascript.

    <script>
    function create () {
          $.ajax({
            url:"test.php", //the page containing php script
            type: "post", //request type,
            dataType: 'json',
           data: {courseName: "algebra", courseTopic: "xyz", email: "abc@gmail.com"}
            success:function(result){

             console.log(result.abc);
           }
         });
     }
<script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...