Как осуществить отправку сообщения без перезагрузки страницы (Ruby on Rails)?

На странице есть div c CSS свойством display: none; При нажатии на него, здесь же, показывается блок с двумя полями для ввода значений (Пол и Возраст). Если нажать "Отправить данные", то данные просто уходят, оставляя за собой все так же блок div со свойством display: block;

Как сделать так, чтобы при отправке сообщения блок закрывался и на месте него показывалось сообщение об успешной отправке? Без перезагрузки страницы.
  • Вопрос задан
  • 3238 просмотров
Решения вопроса 1
Vakiliy
@Vakiliy
В упрощенном виде примерно вот так.
Во вьюхе:
<div class="msg"></div>
<div class="form-wrap" style="display:block">
<%= form_tag('/feedback', remote: true, format: :json, id: 'feedback') do %>
....

в контроллере
def send_email
....
  respond_to do |format|
    # if success
    msg = success ? 'You request will be success processed'
                  : 'Ooops. Error occurred. Try later.'
    format.json { render json: {msg: msg}.to_json }
  end
end

CoffeeScript:
$('#feedback')
  .on 'ajax:before', ()->
    $('.form-wrap').hide()
    $('.msg').html('Sending...')
  .on 'ajax:success', (e, data)->
    $('.msg').html(data.msg)

Поподробней можно глянуть тут
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Finist
Ваша главная задача отправить форму ajax'ом на сервер, спрятать ненужный блок тут самое легкое
stackoverflow.com/questions/6723334/submit-form-in...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы