/ / Prześlij prosty formularz używając ajax i rails - jquery, ruby-on-rails, ajax, model-view-controller, controller

Prześlij prosty formularz za pomocą ajax i szyn - jquery, ruby-on-rails, ajax, model-view-controller, controller

Próbuję zbudować formularz przy użyciu Ajax.

czytam to tutorial, ale nie jest to dla mnie jasne.

Chciałbym przesłać prosty formularz i pokazać plikskutkuje tą samą stroną bez odświeżania strony. Nie mam modeli w mojej aplikacji. Chcę tylko przesłać formularz, wysłać żądanie do interfejsu API i pokazać wynik z powrotem na stronie.

Jeśli używam tego na przykład:

<form method="post" action="/my_controller/my_action" class="button_to" data-remote="true" data-type="json">
<input type="text" ..>
<input type="text" ..>
<div><input value="Show" type="submit" /></div>
</form>

Jak mogę uzyskać te wartości w my_controller i jak mogę wyświetlić widok z powrotem?

Dzięki za pomoc

Odpowiedzi:

1 dla odpowiedzi № 1

Twoja forma

<form method="post" action="/my_controller/my_action" class="button_to" data-remote="true"       data-type="script">
<input type="text" name="value1">
<input type="text" name="value1">
<div><input value="Show" type="submit" /></div>
</form>

Twój displayowy tag DIV

<div id="feeds"></div>

Twoja akcja

def my_action
@value1 = params[:value1]
@value1 = params[:value2]
respond_to do |format|
format.js
end
end

Twój widok mój / my_action.js.erb

$("#feeds").prepend("<%= j ("<p>#{@value1}-#{@value2}</p>") %>");

0 dla odpowiedzi nr 2

użyj metody Ajax jquery

$.ajax({
url:"/path/to/controller",
type:"GET",
data:{formData:$("form").serialize()},
success:function(data){
//do what ever with the response
}

});

dodatkowo można dołączyć moduł obsługi zdarzenia błędu

http://api.jquery.com/jQuery.ajax/


0 dla odpowiedzi № 3

Próbowałem edytować odpowiedź @MuhammetDILEK, która prawie mi się sprawdziła. Jednak musiałem użyć data-type="script" zamiast data-type="json" w formie, jak wyjaśniono w: https://stackoverflow.com/a/15115551/3472491