Buenas tardes a todos y de antemano gracias por la ayuda que me puedan prestar.
Pues bien tengo un pequeño problema que me esta volviendo loco y claro al ser novato mas aun por eso recurro al foro ya que google lo agote y las pocas ayudas no las sabia implementar.
el problema esta en la carga de las etiquetas <script type="text/javascript"> que se encuentran en una view cargada mediante ajax ya que el codigo se ejecuta pues el depurador me lo meustra y los valores los obtiene correctamente pero no me muestra la informacion en el div que tendria que hacerlo.
Estoy trabajando en una web de rutas( uso de layouts, apis, js.....)
tengo una pagina index dentro de la web que solo trabaja en ajax y las cosas sencillas las hace correctamente, un div se actualiza mediante ajax recogiendo la infromacion de la vista que lo actualiza y asi susecivamente.. pero el problema aparece cuando cargo una de estas views que me actualizan el contenido de uno de los divs mostrandome las diferentes rutas las cuales estan enlazadas a un link_to_remote de la siguiente forma :
<li><%= link_to_remote(p.title,:update=>"block-map",:url => {:action => :routefriend,:id_route=> p.idroute.to_s})%></li>
como pueden ver se tendria que actualizar la informacion de la id block-map.
si en la nueva vista pongo contenido a ese div, esta se carga, pero lo que quiero es usar el scipt que me rellena la informacion (este se ejecuta internamente pero en el browser"navegador" no se ve reflejado ningun script" y segun tengo entendido ajax+js funciona de forma diferente y creanme he probado casi todo"
lo que tengo en la vista es lo siguiente:
<% content_for :header do %>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script src="http://maps.google.com/maps?file=api&v=2∓sensor=false&key=..." type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
map = new GMap2(document.getElementById("map_canvas"));
geoXml = new GGeoXml('http://........./kmls/<%[email protected]%>.kml');
map.setCenter(new GLatLng(<%[email protected]%>),11)
map.setUIToDefault();
map.addOverlay(geoXml);
}
</script>
<% end %>
<div id="block-map">
<div id="map_canvas">
#//aquí me tendria que cargar la informacion del resultado de la funcion "el mapa pero no lo hace"
</div>
<div id="directionpanel">
</div>
</div>
Cosas que he probado : pero que no funcionan
<li><%= link_to_remote(p.title,:update=>"block-map",:url => {:action => :routefriend,:id_route=> p.idroute.to_s}, :success => 'initialize')%></li>
:success / :oncomplete/:onSuccess...
quitando las etiquetas del layout del head de la vista... poneindolas... ejecutando el script despues del div.... pero nada no hay manera
PD: si en lugar de ajax hago un href solo cargando el mapa en otra pagina lo hace bien, pero el caso es que lo necesito en el div de esa misma pagina y no se como hacerlo para que funcione
PD: index(se alimenta directamente del layout por lo que probe añadir el script aqui ya que si me lo reconoce pero los datos no los tengo hasta que el usuario pase navegue por las vistas cargadas por ajax.
Bueno de antemano gracias.
tampoco entiendo por que si puedo hacer ajax de ajax de ajax no puedo hacer script dentro de ajax.... vamos coas de novatos.
Neuvamente gracias
se me olvido poner la infor que tengo en el controlador
def routefriend
@friends = Users.getfriends(session[:iduser_friend])
@rt = Routes.find(:first,
:conditions => {:id =>params[:id_route]}
)
if @rt == nil
flash[:error] = t :nocontent #missatge d'error
redirect_to :controller => "home", :action => "index"
return
else
@route = Routesample.new
@route.setroute(@rt)
@route.setdescroute(Descroutes.find(
:first,
:conditions => {:idroute => @rt.id, :idlanguage => session[:language]}
))
@route.setmultimediaroutes(Multimediaroutes.find(
:all,
:conditions => {:idroute => @rt.id, :published => true}
))
@route.settrackstages(Trackstages.find(
:all,
:conditions => {:idstage => @rt.id}
))
@route.setfollowers(Userroutes.find(
:all,
:joins => :users,
:select=>"iduser,avatar,nickname",
:conditions => {:idstage => @rt.id}
))
@route.setroutestages(Routestage.find(
:all,
:conditions => {:idroute => @rt.id}
))
@route.setroutestatistics(Vstatistics.find(
:first,
:conditions => {:idroute => @rt.id}
))
@vstatistics = Vstatistics.find(
:first,
:conditions => {:idroute => @rt.id, :iduser => session[:user_id]}
)
@route.setuserstatistics(@vstatistics)
@route.setcommentroutes(Commentroutes.find(
:all,
:joins => :users,
:limit => 10,
:select=>"comment,time,nickname",
:conditions => {:idroute=> @rt.id,}
))
end
if ( @route != nil )
render(:layout => false)
else
......
end
end