как передать input [закрыт]

155
02 мая 2019, 10:10

Подскажите пожалуйста, как передать содержимое этих input в php без кнопок и перезагрузки страницы. Вроде как можно через ajax. Пробовал, ничего не получилось.

<input type="text"  name="step1" />
<input type="text"  name="step2" />
<input type="text"  name="step3" />
<input type="text"  name="step4" />
<input type="text"  name="step5" />  
Answer 1

Во-первых, у тебя не хватает атрибута value на инпутах. Во-вторых, в любом случае нужно какое-то действие (пусть даже неявное), чтобы отправить. В простейшем случае эти инпуты - часть формы (внутри тэга <form>), и после сабмита (по кнопке или еще как) они станут элементами $_GET/$_POST и $_REQUEST в php.

Альтернативно, без перезагрузки страницы, повесь отправку на любое событие (не обязательно клик на кнопку), какое тебе нужно, а дальше собери значения полей с формы с помощью javascript и отправь тем или иным методом. Для упрощения можно использовать jQuery примерно так:

function submitForm(){
    var form = $("селектор формы"),
        url = form.attr("action"),
        formData = form.serializeArray();
    $.post(url, formData).done(function (data) {
        console.log(data);
    });
}
$("какой-то селектор").on("какое-то событие", submitForm);

P.S: используй on вместо bind. И делать отправку вводимого в текстовое поле на событие input без debouncing/throttling может заставить лагать твой интерфейс и создавать излишнюю нагрузку на бэк. Суть debouncing/throttling - это сделать более редкой отправку данных, т.е. не прямо после каждого введенного/удаленного символа, а с некоторой паузой после последнего события (debouncing) или просто раз в какое-то время (throttling).

READ ALSO
Почему при добавлении файла в state первый вызов содержит undefined?

Почему при добавлении файла в state первый вызов содержит undefined?

Есть компонент по добавлению файлов, я их помещаю в стейтСобственно, функция:

154
Laravel, ajax, csrf

Laravel, ajax, csrf

Возникла проблема с отправкой токена в LaravelТокен вот здесь:

158