Как выполнить запрос на сервер при изменении значения input

133
12 июня 2019, 18:10

Можно ли выполнить запрос к файлу на сервере, когда закончил вводить значения в input? Я делаю следующее:

<input class="add" name="add" type="text" placeholder="Add title" onchange="<?php bloginfo('template_url'); ?>/add.php">

Но не работает. Как мне сделать это?

Answer 1

При использовании jQuery это можно очень легко реализовать:

<input id="idIdentifier" name="idIdentifier" type="text" />
var changeTimer = false,
    timeout = 300,
    events = "change keyup",
    url = "<?php bloginfo('template_url'); ?>/add.php";
$("#idIdentifier").on(events, function () {
    if (changeTimer !== false) {
        clearTimeout(changeTimer);
    }
    changeTimer = setTimeout(function () {
            $.ajax({
                type: "POST",
                dataType: "JSON",
                url: url,
                data: {
                    you: data,
                    is: here
                },
                success: function (/*Anything*/ data, /*String*/ textStatus, /*jqXHR*/ jqXHR) {
                    console.info(
                        "data: %o, textStatus: %o, jqXHR: %o",
                        data,
                        textStatus,
                        jqXHR
                    );
                },
                error: funtion(/*jqXHR*/ jqXHR, /*String*/ textStatus, /*String*/ errorThrown) {
                    console.error(
                        "jqXHR: %o, textStatus: %o, errorThrown: %o",
                        jqXHR,
                        textStatus,
                        errorThrown
                    );
                }
            });
            changeTimer = false;
        }, timeout);
});

Скрипт подписывается на события change и keyup и при их наступлении проверяет прошло ли с последнего события время указанное в timeout (иначе мы бы отправляли запрос каждый раз при изменении содержимого), если указанное время прошло, то выполняется AJAX POST запрос по адресу, указанному в переменной url.

  • в переменную events вы можете добавить необходимые события разделяя их пробелом;
  • #idIdentifier - это селектор, который указывает на элемент с id="idIdentifier";

Ссылки по теме

  • jQuery API
  • jQuery API на русском

    Внимание! Описывает устаревшее API, но для знакомства с библиотекой подойдёт

  • jQuery.ajax()
READ ALSO
Задний фон для блоков

Задний фон для блоков

На сайте есть 2 блока div, нужно на эти 2 блока поставить задний фон, но не понимаю как это сделать, попытался обернуть их в еще в один div и поставить...

147
Подключение внешних элементов

Подключение внешних элементов

суть в чем, на пхп можно подключить часть верстки которая находится в отдельном html файле скриптом,

148
Append к классу

Append к классу

Не применяетсяappend для классов

153