recargar perder pagina hacer formulario evitar enviar datos boton javascript ruby-on-rails ruby-on-rails-4 google-earth

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'') %>'');

para más referencia: