Ajax. jQuery. Передать все значения табицы БД из PHP в JS и вывести их на экран. PHP 7.3
Собственно проблема описана в теме вопроса, но в кратце: у меня есть кнопка, которая должны выводить все значения таблицы `users`, это я организовал, но очень уж бесит меня постоянная перезагрузка страницы. Можно ли сделать выборку из таблицы прямо в сайт без перезагрузки? Накиньте статеек для PHP 7.3
"Можно ли сделать выборку из таблицы прямо в сайт.."
Допустим у нас есть некий файл - example.php, это файл, в который будут поступать только ajax запросы и более ничего. В нём мы делаем следующее:
if (isset($_POST['myReqest']))
{
MyAjax();
}
function MyAjax()
{}
Таким образом, мы сможет складывать в один файл, сколько угодно ajax запросов и они не будут конфликтовать и пересекаться.
function MyAjax()
{
include('connect.php');
$sql = ("Здесь будет ваш sql запрос обращения к базе");
$stmt = sqlsrv_query($conn, $sql);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
$Param1 = $row['Значение из базы'];
}
echo json_encode((object)
[
"MyPar" => $Param1, //По этому названию, будем обращаться в jQuery
]);
}
Мы подключаем connect.php, это один единственный файл, который будет содержать переменную подключения к базе, в данном случае - $conn.
После извлечения нужных переменных, перечисляем и складываем их в объект json. Причём каждая отдельная переменная, будь-то строка или массив, будут различимы.
$.post("example.php", "myReqest="+MyStr, function(data)
{
var MyPar = JSON.parse(data).MyPar;
$('select').html('');
$.each(MyPar, function(i)
{
var counter = MyPar[i];
$('select').append('');
});
}, "json");
Со стороны jQuery, мы делаем POST запрос, где MyStr - это переменная, которую мы хотим передать. В обратном вызове, мы вытаскиваем конкретное значение и уже со стороны клиента распоряжаемся как хотим. В данном случае, мы очищаем и заполняем элемент select.
Мы так же можем захотеть, передать несколько элементов запрос, выглядит это так:
Мы складывает в объект переменные столько раз, сколько цикл найдёт элементов с классом - elem. Затем преобразуем в строку json и отправляем подобно примеру выше.
Как, что и куда выводить со стороны клиента, уже решать только вам.