Можно ли решить задачу без библиотек (jquery и пр.)?
Здравствуйте, товарищи!
Скажите пожалуйста, можно ли решить подобную задачу без библиотек, на чистом js? Это отправка формы без перезагрузки и вывод сообщения в всплывающем окне. Если это возможно, то как? :) $(document).ready(function() { $('form').submit(function(event) { var json; event.preventDefault(); $.ajax({ type: $(this).attr('method'), url: $(this).attr('action'), data: new FormData(this), contentType: false, cache: false, processData: false, success: function(result) { json = jQuery.parseJSON(result); if (json.url) { window.location.href = '/' + json.url; } else { alert(json.status + ' - ' + json.message); } }, }); }); }); |
Chile, все "библиотеки" написаны на "чистом JS"... ;)
|
Цитата:
|
Chile, у тебя уже приведен пример отправки без перезагрузки...
Осталось узнать что ты понимаешь под выводом сообщения во всплывающем окне. |
Цитата:
|
Цитата:
<script src="http://…jquery.js"></script> :) |
Окно работает и без этого...
alert('Опа!') А отправку данных можно сделать нативным fetch()... https://learn.javascript.ru/fetch |
Цитата:
|
Цитата:
https://www.mousedc.ru/learning/593-...ript-formdata/ Т.ч. придется таки понимать начать. Как иначе? |
Цитата:
|
document.addEventListener('DOMContentLoaded', () => { document.querySelector('form').addEventListener('submit', async (event) => { event.preventDefault(); const { currentTarget: form } = event; const { method, action } = form; const response = await fetch(action, { method, body: new FormData(form) }); const json = await response.json(); if (json.url) { window.location.href = '/' + json.url; } else { alert(json.status + ' - ' + json.message); } }) }) |
Цитата:
Может быть я что-то не то делаю. Мне нужно как-то адаптировать этот код или просто заменить текущий? |
Цитата:
|
Всё равно не работает :))
Просто вот это выводится на белой странице: {"status":"success","message":"post added successfully"} $this->error = 'name should be from 10 to 100 char'; return false; Не то пишу. Выводится сообщение об успехе: $this->view->message('success', "post added successfully"); |
Точка с запятой пропущена была. Вопрос снят. Всем огромное спасибо! :) |
Часовой пояс GMT +3, время: 15:42. |