Приветствую, уважаемые коллеги. Поставил себе задачу: считывать данные формы, как только будут внесены изменения, затем обработать их на сервере и вернуть на страничку результат. Нагородил семнадцати колесный велосипед с треугольным парусом. Надел треуголку, а велосипед хоть и едет, но со скрежетом, и команда грозит поднять бунт и отправить меня прогуляться по рее на корм рыбам.
Если вкратце, то я считываю данные формы в режиме полёта (без сабмита и пр.), отправляю расчитывать на сервер, пишу в файл результат расчетов, читаю из файла полученный результат и вывожу его в необходимом блоке. Короче говоря, если бы я повстречал дьявола, то он бы попросил оставить автограф на сиськах.
Очень надеюсь, что существует более элегантное решение этой, как мне кажется, весьма тривиальной задачи. Надеюсь на вашу помощь.
var days = 3;
$('#days').change(function() {
days = $(this).val();
})
var model;
$('#models [name="optradio"]').change(function() {
model = $(this).val();
var formData = new FormData();
formData.append("type", type);
formData.append("model", model);
formData.append("days", days);
// отослать
var xhr = new XMLHttpRequest();
xhr.open("POST", "interactive.php");
xhr.send(formData);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
$('#vote_status').text(xhttp.responseText);
}
else {
$('#vote_status').text('');
req();
}
};
function req() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
$('#vote_status').text(xhttp.responseText);
}
else {
$('#vote_status').text('');
req();
}
}
xhttp.open("GET", "INTERACTIVE_PRICE/INTERACTIVE_PRICE.txt", true);
xhttp.send();
})
var type = "standart";
$('#types [name="optradio"]').change(function() {
type = $(this).val();
})