как добавить AJAXом sql запрос

133
24 мая 2021, 14:10

не получается сделать запрос на добавление записи с помощью AJAX. JS срабатывает, вроде нормально, насколько я понимаю у меня где-то ошибка в PHP.

PHP:

include 'ajax.php';
    $value = filter_input(INPUT_POST, 'todo-description');
    $date = filter_input(INPUT_POST, 'date');
    if (isset($_POST['todo-description'])) {
        echo 'PHP SRABOTAL' . $_POST['todo-description'];
        function putTodoInBase($db) {
                    $k = rand(1, 1000);
    $sql = "INSERT INTO `Todo` (`id`, `todo-name`, `todo-description`, `date`) VALUES (NULL, `test`, :value, :date)";      
    $stmt = $db->prepare($sql);
    $stmt->execute(array(':value' => $value, ':date' => $date));
        }
    }

JS:

 let params = 'todo-description=' + textAreaValue + '&' + 'date=' + dateNow;
    SendRequest('POST', 'api.php', params,requestAlert);

function SendRequest(r_method, r_path, r_args, r_handler)
{
    //Создаём запрос
    let Request = CreateRequest();
    //Проверяем существование запроса еще раз
    if (!Request)
    {
        return;
    }
    //Назначаем пользовательский обработчик
    Request.onreadystatechange = function ()
    {
        //Если обмен данными завершен
        if (Request.readyState == 4)
        {
            //Передаем управление обработчику пользователя
            r_handler(Request);
        }
    }
    //Проверяем, если требуется сделать GET-запрос
    if (r_method.toLowerCase() == "get" && r_args.length > 0)
        r_path += "?" + r_args;
    //Инициализируем соединение
    Request.open(r_method, r_path, true);
    if (r_method.toLowerCase() == "post")
    {
        //Если это POST-запрос 
        //Устанавливаем заголовок
        Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
        //Посылаем запрос
        Request.send(r_args);
        alert('AJAX POSLAN');
    } else
    {
        //Если это GET-запрос
        //Посылаем нуль-запрос
        Request.send(null);
    }
}
function CreateRequest()
{
    let Request = false;
    if (window.XMLHttpRequest)
    {
        //Gecko-совместимые браузеры, Safari, Konqueror
        Request = new XMLHttpRequest();
    } else if (window.ActiveXObject)
    {
        //Internet explorer
        try
        {
            Request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (CatchException)
        {
            Request = new ActiveXObject("Msxml2.XMLHTTP");
        }
    }
    if (!Request)
    {
        alert("Невозможно создать XMLHttpRequest");
    }
    return Request;
}

БД:

Answer 1

Почемуто в $value; $date был null, пока сделал так... + я не вызывал функцию

     function putTodoInBase($db) {
        $k = rand(1, 1000);
        $sql = "INSERT INTO `Todo` (`id`, `todo-name`, `todo-description`, `date`) VALUES (NULL, '$k', :value, :date)";      
        $stmt = $db->prepare($sql);
        $stmt->execute(array(':value' => $_POST['todo-description'], ':date' => $_POST['date']));
    }
putTodoInBase($db);
READ ALSO
Помогите разобраться в виджете datapicker!

Помогите разобраться в виджете datapicker!

Есть такой код $("#datepicker1,#datepicker2" )datepicker({ showWeek: true, firstDay: 1 }); Есть форма состоящая из 2 полей в одном нужно выбрать дату приезда(#datapicker1)...

120
align-Items для CSS

align-Items для CSS

Всем привет, я правильно понимаю, что при использовании align-items, если высота главного блока не указана, то элементы выравниваются по самому...

109
Как обернуть изображение в круг?

Как обернуть изображение в круг?

Обернуть изображение в круг, я пытался сделать это с помощью padding'а, после чего добавив обыкновенные границы, но это портит изображение по углам

107
Умножение матриц различных типов

Умножение матриц различных типов

К примеру у меня есть две матрицы: изображение и коэффициенты, на которые нужно домножить каждый пиксель изображенияМатрицы имеют одинаковую...

108