On 14 Dec 2011, at 09:12, skrite <sh...@skrite.net> wrote:

> OK, i did try your example and the circles disappear, but never
> update. Then, nothing. there are no errors in the inspect element of
> chrome under the console, nothing updates, it just kinda freezes
> there. I can see the queries being pulled in the webrick server logs.
> a prettier image of the code is here http://pastie.org/3014696
> (also more complete).

Because you've called the parameter that is passed to you Ajax callback 
'response', you need response.responseJSON not request.responseJSON
Stick a breakpoint in there to investigate further
Fred
> I know i am fumbling over something obvious here, but just cannot seem
> to work it out.
> 
> when i use the request address update_mapv3_circles in a browser, this
> is the response
> [["35.931341","-102.32205",381.75,287.4,"AL","AL",
> 557,"#7F7F7F","#FF0000",287.8,287.6,"AL<br>0 psi",0],
> ["35.88125039","-102.3088989",525.0,83.4,"DC","DC",
> 34280,"#7F7F7F","#FF0000",83.6,83.1,"DC<br>0 psi",0],
> ["35.88125039","-102.3226989",525.0,81.7,"DC2","DC2",
> 37241,"#000000","#FF0000",81.7,81.7,"DC2<br>0 psi",0],
> ["35.92361","-102.308768",534.75,74.8,"J1","J1",
> 559,"#7F7F7F","#FF0000",74.6,74.5,"J1<br>0 psi",0],
> ["35.92332","-102.32096",493.5,261.0,"J2","J2",560,"#7F7F7F","#FF0000",
> 261.0,261.0,"J2<br>0 psi",0],["35.931354","-102.31308",
> 397.5,82.1,"SL1","SL1",561,"#7F7F7F","#FF0000",80.9,81.9,"SL1<br>0
> psi",0],["35.931186","-102.304202",390.0,165.4,"SL2","SL2",
> 110823130,"#7F7F7F","#FF0000",165.5,165.6,"SL2<br>0 psi",0],
> ["35.938729","-102.29968",397.5,89.3,"SL4","SL4",
> 563,"#7F7F7F","#FF0000",89.3,89.3,"SL4<br>0 psi",0],
> ["35.931301","-102.29965",397.5,23.4,"SL5","SL5",
> 564,"#7F7F7F","#FF0000",23.0,23.4,"SL5<br>0 psi",0],
> ["35.924694","-102.299034",333.75,95.8,"SL6","SL6",
> 7882,"#7F7F7F","#FF0000",95.8,95.8,"SL6<br>0 psi",0]]
> 
> in the view source of the website where <%= @mapped_sites.to_json %>
> is , i have this
> var sites = [["35.931341","-102.32205",381.75,287.4,"AL","AL",
> 557,"#7F7F7F","#FF0000",287.8,287.6,"AL<br>0 psi",0],
> ["35.88125039","-102.3088989",525.0,83.4,"DC","DC",
> 34280,"#7F7F7F","#FF0000",83.6,83.1,"DC<br>0 psi",0],
> ["35.88125039","-102.3226989",525.0,81.7,"DC2","DC2",
> 37241,"#000000","#FF0000",81.7,81.7,"DC2<br>0 psi",0],
> ["35.92361","-102.308768",534.75,74.8,"J1","J1",
> 559,"#7F7F7F","#FF0000",74.6,74.5,"J1<br>0 psi",0],
> ["35.92332","-102.32096",493.5,261.0,"J2","J2",560,"#7F7F7F","#FF0000",
> 261.0,261.0,"J2<br>0 psi",0],["35.931354","-102.31308",
> 397.5,82.1,"SL1","SL1",561,"#7F7F7F","#FF0000",80.9,81.9,"SL1<br>0
> psi",0],["35.931186","-102.304202",390.0,165.4,"SL2","SL2",
> 110823130,"#7F7F7F","#FF0000",165.5,165.6,"SL2<br>0 psi",0],
> ["35.938729","-102.29968",397.5,89.3,"SL4","SL4",
> 563,"#7F7F7F","#FF0000",89.3,89.3,"SL4<br>0 psi",0],
> ["35.931301","-102.29965",397.5,23.4,"SL5","SL5",
> 564,"#7F7F7F","#FF0000",23.0,23.4,"SL5<br>0 psi",0],
> ["35.924694","-102.299034",333.75,95.8,"SL6","SL6",
> 7882,"#7F7F7F","#FF0000",95.8,95.8,"SL6<br>0 psi",0]];
> 
> Anyway, thanks for all of your help so far, this is at least less
> baffling to me than it was a couple of days ago.
> 
> 
> sk
> 
> 
> On Dec 14, 2:52 am, Frederick Cheung <frederick.che...@gmail.com>
> wrote:
>> On 14 Dec 2011, at 05:47, skrite <sh...@skrite.net> wrote:
>> 
>>> ok, even though the @mapped_sites.to_json works, the output of that
>>> does not look like json. It looks like an array
>> 
>> If my memory is correct, that's valid json too ( as are most literals). It's 
>> common for the top level thing to be an object rather than an array, but not 
>> mandatory. Since the thing you called to_json on was an array, you got the 
>> json representation of an array back.
>> 
>> To get the non text version of the response, like I said earlier look at 
>> response.responseJSON
>> 
>> Fred
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> example:
>> 
>>> var sites = [["35.931341","-102.32205",381.75,288.0,"AL","AL",
>>> 557,"#7F7F7F","#FF0000",287.1,288.3,"AL<br>0 psi",0],
>>> ["35.88125039","-102.3088989",525.0,83.4,"DC","DC",
>>> 34280,"#7F7F7F","#FF0000",83.1,83.3,"DC<br>0 psi",0],
>>> ["35.88125039","-102.3226989",525.0,81.7,"DC2","DC2",
>>> 37241,"#000000","#FF0000",81.7,81.7,"DC2<br>0 psi",0],
>>> ["35.92361","-102.308768",534.75,73.7,"J1","J1",
>>> 559,"#7F7F7F","#FF0000",74.7,73.8,"J1<br>0 psi",0],
>>> ["35.92332","-102.32096",493.5,261.0,"J2","J2",560,"#7F7F7F","#FF0000",
>>> 261.0,261.0,"J2<br>0 psi",0],["35.931354","-102.31308",
>>> 397.5,80.8,"SL1","SL1",561,"#7F7F7F","#FF0000",81.3,81.9,"SL1<br>0
>>> psi",0],["35.931186","-102.304202",390.0,165.2,"SL2","SL2",
>>> 110823130,"#7F7F7F","#FF0000",165.4,165.6,"SL2<br>0 psi",0],
>>> ["35.938729","-102.29968",397.5,89.3,"SL4","SL4",
>>> 563,"#7F7F7F","#FF0000",89.3,89.3,"SL4<br>0 psi",0],
>>> ["35.931301","-102.29965",397.5,23.7,"SL5","SL5",
>>> 564,"#7F7F7F","#FF0000",23.9,23.0,"SL5<br>0 psi",0],
>>> ["35.924694","-102.299034",333.75,95.8,"SL6","SL6",
>>> 7882,"#7F7F7F","#FF0000",95.8,95.8,"SL6<br>0 psi",0]];
>> 
>>> and the code seems to work with it like an array. How do i get the
>>> responseText from the server as an array?
>> 
>>> thanks again.
>> 
>>> sk
>> 
>>> On Dec 13, 4:08 pm, Frederick Cheung <frederick.che...@gmail.com>
>>> wrote:
>>>> On 13 Dec 2011, at 19:54, skrite <sh...@skrite.net> wrote:
>> 
>>>>> Jim.
>> 
>>>>> You are correct, when i show typeof(sites) from when sites = <%=
>>>>> @mapped_sites =>
>>>>> i get object
>>>>> when i do typeof(sites) after getting sites from the
>>>>> url_that_returns_json
>>>>> i get string
>> 
>>>> responseText is always going to be text if I remember how prototype 
>>>> handles thing (the text will just happen to be the string representation 
>>>> of the json).
>>>> If the response content-type was set correctly then response.responseJson 
>>>> (or something like that) should be populated
>> 
>>>> Fred
>> 
>>>>> i suppose that i am not getting returned correctly.
>>>>> if i look at the source of @mapped_sites
>>>>> and from the browser look at url_that_returns_json,
>>>>> they are identical.
>> 
>>>>> thanks for your help, again.
>>>>> I have learned a lot the last couple of days :)
>> 
>>>>> On Dec 12, 6:22 pm, Jim Ruther Nill <jvn...@gmail.com> wrote:
>>>>>> On Tue, Dec 13, 2011 at 6:08 AM, skrite <sh...@skrite.net> wrote:
>>>>>>> I am doing something similar here. The website is built on rails 2.3.9
>>>>>>> and
>>>>>>> uses prototype.
>> 
>>>>>>> Almost all of what i need to happen does, but i get to the point where
>>>>>>> the update happens and nothing does.
>> 
>>>>>>> // add circles to map as it initializes
>>>>>>>    addCircles(sites, map, markerArray, lineArray);
>> 
>>>>>>>    var pe = new 
>>>>>>> PeriodicalExecuter(refreshCircleMarkers.curry(markerArray,
>>>>>>> lineArray, map), 33);
>> 
>>>>>>> function refreshCircleMarkers(markerArray, lineArray, map) {
>>>>>>>   // first we remove the existing markers in place
>>>>>>>   for(i=0; i<markerArray.length; i++) {
>>>>>>>     markerArray[i].setMap(null);
>>>>>>>   }
>> 
>>>>>>   // and empty the array itself>   markerArray = [];
>> 
>>>>>>>   var url = "/group/update_mapv3_circles";
>>>>>>>   new Ajax.Request(url, {
>>>>>>>     method: 'get',
>>>>>>>     onSuccess: function(response) {
>>>>>>>       var sites = response.responseText;
>>>>>>>       addCircles(sites, map, markerArray, lineArray);
>>>>>>>     }
>>>>>>>   });
>> 
>>>>>> I see nothing wrong. Does the addCircles function expect a JSON
>>>>>> object for the first param?  The only reason I can think why this isn't
>>>>>> working
>>>>>> is a type mismatch.
>> 
>>>>>>> If i do an alert(response.responseText) the alert will show up and
>>>>>>> display the contents of the @mapped_sites.to_json ( i am using
>>>>>>> render :json => @mapped_sites.to_json in the controller).
>>>>>>> Please let me know if you see something i am doing wrong.
>>>>>>> Thanks for your help on this so far Jim.
>> 
>>>>>>> sk
>> 
>>>>>>> On Dec 9, 11:49 pm, Jim Ruther Nill <jvn...@gmail.com> wrote:
>>>>>>>> On Sat, Dec 10, 2011 at 3:56 AM, skrite <sh...@skrite.net> wrote:
>>>>>>>>> I am intrigued by this solution, Jim.
>>>>>>>>> i have a couple of questions, as it seems this is a cleaner way than
>>>>>>>>> what I am trying to do.
>>>>>>>>> The values that determine the circle color are in the database, and
>>>>>>>>> can change while the page is loaded. This is why i need them to
>>>>>>>>> update.
>> 
>>>>>>>> i'll still go with my suggestion earlier.  To update the colors, just
>>>>>>> update
>>>>>>>> the sites variable after completing the ajax request and then call
>>>>>>>> addCircles
>> 
>>>>>>>> your ajax call may look like the following (this is totally untested 
>>>>>>>> :D)
>> 
>>>>>>>> $.ajax({
>>>>>>>>   url: your_url_here_that_returns_json_equivalent_of_@mapped_sites,
>>>>>>>>   success: function(data) {
>>>>>>>>     addCircles(data);
>>>>>>>>   }
>> 
>>>>>>>> });
>>>>>>>>> So, somehow i still need to go to the server for that. I guess i am
>>>>>>>>> missing the part about how to get the @mapped_sites variable to the
>>>>>>>>> controller and back again to the page to rebuild the circles.
>>>>>>>>> Thanks for your time on this.
>>>>>>>>> sk
>> 
>>>>>>>>> On Dec 9, 9:48 am, Jim Ruther Nill <jvn...@gmail.com> wrote:
>>>>>>>>>> On Fri, Dec 9, 2011 at 11:04 PM, skrite <sh...@skrite.net> wrote:
>>>>>>>>>>> Hey, thanks for these links, very helpful.
>>>>>>>>>>> -sk
>> 
>>>>>>>>>>> On Dec 8, 7:49 pm, "L.Karthikeyan" <logkart...@gmail.com> wrote:
>>>>>>>>>>>> Hi,
>> 
>>>>>>>>>>>>       For this you need to use rjs Ajax request. Please refer the
>>>>>>>>>>>> following links, you will get an idea.
>> 
>>>>>>>>>>>> 1.http://railscasts.com/episodes/43-ajax-with-rjs?autoplay=true,
>>>>>>>>>>>> 2.
>>>>>>>>> http://railscasts.com/episodes/229-polling-for-changes?autoplay=true
>> 
>>>>>>>>>> one more option is to keep @mapped_sites to a javascript variable so
>>>>>>> you
>>>>>>>>>> dont have to use ajax.  you might also want to move the makeMarker
>>>>>>> part
>>>>>>>>>> to a js function to tidy up the view and just call that function
>>>>>>> when you
>>>>>>>>>> need
>>>>>>>>>> to update the colors
>> 
>>>>>>>>>> something along the lines of
>> 
>>>>>>>>>> var sites = <%= @mapped_sites.to_json %>;
>>>>>>>>>> addCircles(sites);
>> 
>>>>>>>>>> function addCircles(circles) {
>>>>>>>>>>   for(i=0; i<circles.length; i++) {
>>>>>>>>>>     center = new google.maps.LatLng(circles[i][0], circles[i][1]);
>>>>>>>>>>     siteCircle = makeMarker({
>>>>>>>>>>       position: center,
>>>>>>>>>>       strokeColor: "#FF0000",
>>>>>>>>>>       strokeOpacity: 0.8,
>>>>>>>>>>       strokeWeight: 2,
>>>>>>>>>>       fillColor: circles[i][7],
>>>>>>>>>>       fillOpacity: 0.75,
>>>>>>>>>>       radius: 560,
>>>>>>>>>>       map: map,
>>>>>>>>>>       center: center,
>>>>>>>>>>       radius: circles[i][2],
>>>>>>>>>>       title: circles[i][5],
>>>>>>>>>>       content: 'content'
>>>>>>>>>>     });
>>>>>>>>>>   }
>> 
>>>>>>>>>> }
>> 
>>>>>>>>>> then you just need to update the sites variable using js. no need
>>>>>>>>>> to go back to the server.
>> 
>>>>>>>>>>>> On Thu, Dec 8, 2011 at 1:10 AM, skrite <sh...@skrite.net> wrote:
>> 
>>>>>>>>>>>>> Hey all,
>>>>>>>>>>>>> i have a google map and i am drawing circles on the map like
>>>>>>> this..
>> 
>>>>>>>>>>>>>  var latlng = new google.maps.LatLng(35.931387,
>>>>>>>>>>>>> -102.31062);
>>>>>>>>>>>>>    var myMapOptions =
>>>>>>>>>>>>> {
>>>>>>>>>>>>>      zoom:
>>>>>>>>>>>>> 12,
>>>>>>>>>>>>>      center:
>>>>>>>>>>>>> latlng,
>>>>>>>>>>>>>      mapTypeId:
>>>>>>>>>>>>> google.maps.MapTypeId.HYBRID
>>>>>>>>>>>>>    };
>> 
>>>>>>>>>>>>>    var map = new
>>>>>>>>>>>>> google.maps.Map(document.getElementById("map_canvas"),
>>>>>>>>>>>>> myMapOptions);
>>>>>>>>>>>>>    var infoWindow = new
>>>>>>>>>>>>> google.maps.InfoWindow();
>>>>>>>>>>>>>    var markerBounds = new
>>>>>>>>>>>>> google.maps.LatLngBounds();
>> 
>>>>>>>>>>>>>   <% @mapped_sites.each do |row|
>>>>>>>>>>>>> %>
>> 
>>>>>>>>>>>>>        // main
>>>>>>>>>>>>> circle
>>>>>>>>>>>>>        center = new google.maps.LatLng(<%= "#{row[0]}" %>, <%=
>>>>>>>>>>>>> "#{row[1]}"
>>>>>>>>>>>>> %>);
>>>>>>>>>>>>>        siteCircle =
>>>>>>>>>>>>> makeMarker({
>>>>>>>>>>>>>          position:
>>>>>>>>>>>>> center,
>>>>>>>>>>>>>          strokeColor:
>>>>>>>>>>>>> "#FF0000",
>>>>>>>>>>>>>          strokeOpacity:
>>>>>>>>>>>>> 0.8,
>>>>>>>>>>>>>          strokeWeight:
>>>>>>>>>>>>> 2,
>>>>>>>>>>>>>          fillColor: '<%= "#{row[7]}"
>>>>>>>>>>>>> %>',
>>>>>>>>>>>>>          fillOpacity:
>>>>>>>>>>>>> 0.75,
>>>>>>>>>>>>>          radius:
>>>>>>>>>>>>> 560,
>>>>>>>>>>>>>          map:
>>>>>>>>>>>>> map,
>>>>>>>>>>>>>          center:
>>>>>>>>>>>>> center,
>>>>>>>>>>>>>          radius: <%= "#{row[2]}"
>>>>>>>>>>>>> %>,
>>>>>>>>>>>>>          title: '<%= "#{row[5]}"
>>>>>>>>>>>>> %>',
>>>>>>>>>>>>>          content: '<%= "some contnet
>>>>>>>>>>>>> %>'
>>>>>>>>>>>>>       });
>> 
>>>>>>>>>>>>>       markerArray.push(siteCircle);
>> 
>>>>>>>>>>>>> my question is, that since the fillColor is going to change
>>>>>>> from
>>>>>>>>> time
>>>>>>>>>>>>> to time, i want to update all the colors of the circles
>>>>>>>>> periodically.
>>>>>>>>>>>>> What i don't know how to do is get the equivelent to the
>>>>>>>>>>>>> @mapped_sites  because if i could, i think i could just delete
>>>>>>> the
>>>>>>>>>>>>> existing circles and draw new ones.
>> 
>>>>>>>>>>>>> How do i get info back from the server periodically to update
>>>>>>> the
>>>>>>>>>>>>> circle colors?
>> 
>>>>>>>>>>>>> thanks to all.
>>>>>>>>>>>>> skrite
>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>> Google
>>>>>>>>>>> Groups "Ruby on Rails: Talk" group.
>>>>>>>>>>>>> To post to this
>> 
>> ...
>> 
>> read more ยป
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to 
> rubyonrails-talk+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-talk?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to