javascript - perder - Rieles: enviar un formulario sin volver a cargar la página
php sin recargar pagina (2)
Publicar algo de su código ayudaría, pero intente agregar "remote: true" a su formulario. Eso le dirá a su página que no actualice cuando envíe.
Además, deberá crear un nuevo método en su controlador para reenviarlo que responda a su envío y una página en su carpeta de vistas (probablemente un archivo js.erb) que vuelva a cargar los datos. Sin ver su código, un ejemplo rápido de los pasos:
app / assets / views / google_earth / index.html.erb
<%= form_for(@pane_view, url: camera_path, remote: true) do |f| %>
En tu archivo de rutas:
get ''camera'' => ''google_earth#cameraUpdate'', as: ''camera''
app / assets / views / google_earth / camera.js.erb
$(''#camera-pane'').html("<%= escape_javascript(render partial: ''camera_view'', :locals => { x_coord: @x, y_coord: @y }) %>");
Esto supone que tienes una vista parcial para tu panel, te recomiendo hacerlo de forma parcial si aún no lo has hecho: app / assets / views / google_earth / _camera_view.html.erb
Finalmente, en su controlador querrá:
def cameraUpdate
@x = params[:x_coordinate]
@y = params[:y_coordinate]
respond_to do |format|
format.html
format.js
end
end
Mi aplicación ( https://showthatview.herokuapp.com/ ) tiene dos partes:
- Un panel de Google Earth, donde se muestra una vista
- Un formulario, donde el usuario establece la dirección / altura donde quiere que se configure la cámara
Cuando el usuario envía el formulario, quiero que el servidor de fondo RoR almacene los parámetros establecidos por el usuario y la interfaz de JS para actualizar la vista. Tengo las dos partes separadas funcionando.
Cuando el usuario envía los formularios Rail, vuelve a cargar la página y "restablece" la cámara
Idealmente, quiero que el formulario envíe los datos al extremo posterior sin volver a cargar la página. ¿Es esto posible? ¿O tal vez estoy haciendo esto completamente mal?
Con jQuery:
$("button").click(function(){
$.ajax({url: "/get_some_route/", success: function(result){
$("#div1").html(result);
}});
});
Con Rails:
xxx.html.erb
<%= link_to ''Daily Collection'', ''daily_collection'', class: "btn btn-info", method: ''get'', remote: true %>
routes.rb
get ''daily_collection'' => ''patients#daily_collection''
patients_controller.rb
class Patients
def daily_collection
do something...
end
end
collection_money.html.erb
<p>to be appended with the called page </p>
daily_collection.js.erb
$(''#price_daily'').html(''<%= escape_javascript(render :partial => ''collection_money'') %>'');