hi all,
I have following problem,
I am using google map api , I have "business_locations" array
defined in view it contains latitude and longitude in following format
lng-142.122745lat42.674224
lng-112.122745lat46.674224
lng-122.122745lat40.674224
I am sending locations array to partial view following way
= render :partial => ''coupons/search'', :locals =>
{:locations =>
business_locations}
to the javascript present on "_search.html.haml" here(in javascript) i
have function google_map() and addMarker() which adds no of markers
equal to length of array so i am doing
function google_map(){
for(var j=0; j < "#{locations.length}"; j++)
{
marker=addMarker(parseFloat("#locations[j][:lat]"),
parseFloat("#locations[j][:lng]"));
}}
Here j variable is not set. How I set "j" variable????????
function addMarker(latitude, longitude) {
var marker = new GMarker(new GLatLng(latitude, longitude));
}
where ("#{locations[0]}") is lng-142.122745lat42.674224
where ("#{locations[1]}") is lng-112.122745lat46.674224
where ("#{locations[2]}") is lng-112.122745lat46.674224
--
Posted via http://www.ruby-forum.com/.
Wrap variables around <%= %> inside double quote e.g. for(var j=0; j < "<%=locations.length%>"; j++) On Jul 22, 4:17 pm, Nilesh Kulkarni <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> hi all, > > I have following problem, > > I am using google map api , I have "business_locations" array > defined in view it contains latitude and longitude in following format > lng-142.122745lat42.674224 > lng-112.122745lat46.674224 > lng-122.122745lat40.674224 > > I am sending locations array to partial view following way > = render :partial => ''coupons/search'', :locals => {:locations => > business_locations} > > to the javascript present on "_search.html.haml" here(in javascript) i > have function google_map() and addMarker() which adds no of markers > equal to length of array so i am doing > > function google_map(){ > for(var j=0; j < "#{locations.length}"; j++) > { > marker=addMarker(parseFloat("#locations[j][:lat]"), > parseFloat("#locations[j][:lng]")); > }} > > Here j variable is not set. How I set "j" variable???????? > > function addMarker(latitude, longitude) { > var marker = new GMarker(new GLatLng(latitude, longitude)); > > } > > where ("#{locations[0]}") is lng-142.122745lat42.674224 > where ("#{locations[1]}") is lng-112.122745lat46.674224 > where ("#{locations[2]}") is lng-112.122745lat46.674224 > -- > Posted viahttp://www.ruby-forum.com/.
vlain wrote:> Wrap variables around <%= %> inside double quote > e.g. > for(var j=0; j < "<%=locations.length%>"; j++) > > > > On Jul 22, 4:17�pm, Nilesh Kulkarni <rails-mailing-l...@andreas-s.net>As a slightly more general solution, rather than wrapping the "" around the erb block, if you call inspect on the object inside then it will have quotes added if it''s a string but not if it''s a number, and if it''s an array it will be shown in the right format, etc. So, .inspect makes things print out in such a way that they ''look right'' and can be used as is. (In the example above it looks like you need a number rather than a string. ) #in rails controller @cars = Car.find(:all) #in your js section in a view page var carNames = <%= @cars.collect(&:name).inspect %>; => var carNames = ["Micra", "Primera", "Almeira"]; var firstCarModel = <%= @cars.first.model.inspect %>; => var firstCarModel = "Nissan"; for(var j=0; j < <%= @cars.length.inspect %>; j++) => for(var j=0; j < 3; j++) -- Posted via http://www.ruby-forum.com/.
Are you using the GeoKit Rails plugin? On Jul 23, 3:52 am, Max Williams <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> vlain wrote: > > Wrap variables around <%= %> inside double quote > > e.g. > > for(var j=0; j < "<%=locations.length%>"; j++) > > > On Jul 22, 4:17 pm, Nilesh Kulkarni <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > > As a slightly more general solution, rather than wrapping the "" around > the erb block, if you call inspect on the object inside then it will > have quotes added if it''s a string but not if it''s a number, and if it''s > an array it will be shown in the right format, etc. So, .inspect makes > things print out in such a way that they ''look right'' and can be used as > is. > > (In the example above it looks like you need a number rather than a > string. ) > > #in rails controller > @cars = Car.find(:all) > > #in your js section in a view page > var carNames = <%= @cars.collect(&:name).inspect %>; > => var carNames = ["Micra", "Primera", "Almeira"]; > > var firstCarModel = <%= @cars.first.model.inspect %>; > => var firstCarModel = "Nissan"; > > for(var j=0; j < <%= @cars.length.inspect %>; j++) > => for(var j=0; j < 3; j++) > -- > Posted viahttp://www.ruby-forum.com/.
On Jul 23, 9:52 am, Max Williams <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> vlain wrote: > > Wrap variables around <%= %> inside double quote > > e.g. > > for(var j=0; j < "<%=locations.length%>"; j++) > > > On Jul 22, 4:17 pm, Nilesh Kulkarni <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > > As a slightly more general solution, rather than wrapping the "" around > the erb block, if you call inspect on the object inside then it will > have quotes added if it''s a string but not if it''s a number, and if it''s > an array it will be shown in the right format, etc. So, .inspect makes > things print out in such a way that they ''look right'' and can be used as > is. >I would use to_json since that is explicitly making things that javascript understands - it''s mostly a coincidenance that inspect coincides with this for certain types objects (for example with a hash you need to_json) Fred> (In the example above it looks like you need a number rather than a > string. ) > > #in rails controller > @cars = Car.find(:all) > > #in your js section in a view page > var carNames = <%= @cars.collect(&:name).inspect %>; > => var carNames = ["Micra", "Primera", "Almeira"]; > > var firstCarModel = <%= @cars.first.model.inspect %>; > => var firstCarModel = "Nissan"; > > for(var j=0; j < <%= @cars.length.inspect %>; j++) > => for(var j=0; j < 3; j++) > -- > Posted viahttp://www.ruby-forum.com/.
thanks for reply
I have done it something like
= render :partial => ''coupons/search'', :locals =>
{:locations =>
business_locations.}
in "_search.html.haml"
:javascript
var locs = (#{@locations.to_json});
function google_map(){
for(var j=0; j < locs.length; j++)
{
marker=addMarker(locs[i][''lat''],
locs[i][''lng''])
}}
and this is working fine !
--
Posted via http://www.ruby-forum.com/.
Wayne Simacek wrote:> Are you using the GeoKit Rails plugin? > > On Jul 23, 3:52�am, Max Williams <rails-mailing-l...-ARtvInVfO7m5VldFQK4jKA@public.gmane.orgt>no... -- Posted via http://www.ruby-forum.com/.
Nilesh Kulkarni wrote:> thanks for reply> function google_map(){ > for(var j=0; j < locs.length; j++) > { > marker=addMarker(locs[i][''lat''], locs[i][''lng'']) > }}ooo not var locs = (#{@locations.to_json}); but locs = (#{locations.to_json}); -- Posted via http://www.ruby-forum.com/.