Проверка по БД и сделать элемент неактивным.

194
13 октября 2018, 23:50

есть тег select с данными записи по времени, как сделать проверку из БД? если время занято, то делать поле неактивным.

mysqli_query + аякс ?

Answer 1

index.php:

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script src="script.js"></script>
</head>
<body>
    <select id="mySelect">
        <option between="2018-05-10 03:26:00" to="2018-05-10 04:00:00">03:26 - 04:00</option>
        <option between="2018-05-10 04:26:00" to="2018-05-10 05:00:00">04:26 - 05:00</option>
        <option between="2018-05-10 05:26:00" to="2018-05-10 06:00:00">05:26 - 06:00</option>
        <option between="2018-03-30 01:12:30" to="2018-04-04 03:09:00">01:12 - 03:09</option>
    </select>
</body>
</html>

script.js:

jQuery(document).ready(function($){
    $("#mySelect").on('change', function(){
        $.ajax({
            url: 'query.php',
            type: 'POST',
            data: {'between':$("#mySelect option:selected").attr('between'),'to':$("#mySelect option:selected").attr('to')},
            success: function(res){
                if (res == 'true')
                {
                    $("#mySelect").prop("disabled", true);
                }
            },
            error: function(){
                alert('request error');
            },
        });
    });
});

query.php:

<?php
if (isset($_POST["to"]) && isset($_POST["between"]))
{
    $to = $_POST["to"];
    $between = $_POST["between"];
    $host = 'localhost'; // адрес сервера 
    $database = 'portal'; // имя базы данных
    $user = 'root'; // имя пользователя
    $password = ''; // пароль
    $link = mysqli_connect($host, $user, $password, $database) 
    or die("Ошибка " . mysqli_error($link));
    $query ="SELECT * FROM `messages` WHERE date BETWEEN '". $between ."' AND '". $to ."'";
    $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
    $rows = 0;
    if($result)
    {
        $rows = mysqli_num_rows($result);
    }
    if ($rows == 0) echo 'false'; else echo 'true';
}
?>

Тольк в коде выходит если вы деактивируете select, то он уже не активируется. Для активации сами думайте (этого условия в вопросе не было)

READ ALSO
Uncaught ReferenceError: $ is not defined

Uncaught ReferenceError: $ is not defined

ну и подключить jQuery в <head>:

246
Как сделать приведение к типу int (*)[]

Как сделать приведение к типу int (*)[]

У меня есть класс с матрицей который вызывает другую функцию и туда её передает

194
Что такое rvalue и lvalue?

Что такое rvalue и lvalue?

На разных ресурсах нашел разные определения rvalue, lvalueКак же правильно?

210
Помогите мне с system();

Помогите мне с system();

В общем я делаю оболочку для одной программыДля запуска этой программы нужно в cmd отправить вот такой запрос: "C:\folder\executable

164