Sorry, that was supposed to be:
You should NOT use document.write (in this case).

- VizBoy.

On Sun, Dec 14, 2008 at 5:15 PM, VizBoy <[email protected]> wrote:

> Hi,
>
> You should use document.write.
>
> If you prepared the divs in advance (and I think you did) by having <div
> id="table1_div> </div> <div id="table2_div> </div> and so on in your HTML,
> then no document.write is necessary.
> just
> var table1 = new
> google.visualization.Table(document.getElementById(container_id));
> like you did.
> I think it's confused because you're writing a div with the same id as one
> that already exists and that's forbidden in HTML.
>
> Regards,
>     VizBoy.
>
>
> On Fri, Dec 12, 2008 at 3:51 PM, Pragan <[email protected]> wrote:
>
>>
>> Hi Mr.Viz,
>>
>> Thanks for the reply. I understand the problems you had mentioned. Can
>> you please guide me in creating the "container_id" for the divs? I
>> tried to pass this as a parameter in the draw() function like this
>>
>>  function draw(response, container_id) {
>>         if (response.isError()) {
>>          alert("Error in query")
>>        }
>>        var Data1 = response.getDataTable();
>>         document.write('<div id="'+container_id+'"></div>')
>>         var table1 = new google.visualization.Table
>> (document.getElementById(container_id));
>>        table1.draw(Data1, {});
>>      }
>>
>> then I did what you had suggested:
>> query.send(function() { draw('table1_div'); });
>> ....
>> ..
>> query.send(function() { draw('table2_div'); });
>> ...
>> and in the html part I have
>>  <body>
>> <div id="table1_div" ></div><br />
>> <div id="table2_div" ></div><br />
>> </body>
>> </html>
>>
>>  I can do some javascript but not that much. Please let me know if I
>> got anything wrong.
>>
>> thanks
>> pragan.
>>
>> On Dec 10, 5:03 am, VizGuy <[email protected]> wrote:
>> > Hi Pragan,
>> >
>> > When you use query.setQuery(...) you simply modify the query, but you
>> don't
>> > execute it or send it anywhere.
>> > Only when you call query.send(draw); is the query really sent to the
>> server
>> > and executed.
>> > So calling setQuery(...) many times in a row is just like setting a
>> variable
>> > a few times in a row:
>> > var a = 4;
>> > a = 3;
>> > a = 2;
>> >
>> > Of course only the last value will be saved. This is the reason why your
>> > code behaved the way it did.
>> > Anyway, to have the desired effect you must use "send" in between the
>> calls.
>> > BUT it is not good to use send() again on the same query object because
>> the
>> > query obejct is in charge of accepting the incoming response, and it
>> will
>> > probably fail to process the response from the previous send() when that
>> > returns.
>> > What you should do is create a new query object and send() it.
>> >
>> > Also, I noticed that your current draw function always writes to
>> table1_div.
>> > This isn't good because the data drawn will overwrite itself.
>> > If you want to draw this in four separate divs, i suggest modifying your
>> > draw() function to accept a container_id parameter and inside it write
>> > new google.visualization.Table(document.getElementById(container_id));
>> > instead of what you currently have:
>> > new google.visualization.Table(document.getElementById('table1_div'));
>> > Then you should add these new divs to the html body. Then you can write
>> code
>> > like the following:
>> >
>> > var url = '
>> http://spreadsheets.google.com/pub?range=b2:q2&headers=-2&key=pCECuvK...
>> > 'var query = new google.visualization.Query(url);
>> > query.setQuery(...)
>> > query.send(function() { draw('table1_div'); });
>> > query = new google.visualization.Query(url);
>> > query.setQuery(...)
>> > query.send(function() { draw('table2_div'); });
>> > query = new google.visualization.Query(url);
>> > query.setQuery(...)
>> > query.send(function() { draw('table3_div'); });
>> > ...
>> >
>> > Hope this helps,
>> > VizGuy
>> >
>> > On Tue, Dec 9, 2008 at 8:47 PM, Pragan <[email protected]> wrote:
>> >
>> > > Hi Mr.Viz,
>> >
>> > > I got the answer for this question from one of your reply in other
>> > > post.
>> >
>> > > I have got a different quesiton and I guess I can explain it clearly.
>> > > Please help me out.
>> >
>> > > In the below code, I am trying to use "query.setQuery"  for 4 times
>> > > for showing different cells but its just showing the output only for
>> > > the last one i.e  query.setQuery('select N,F'); and not for the ones
>> > > above this. I would like to know how we can do this or if we can do
>> > > this. I tried doing this by copying the query with query.setQuery('')
>> > > and the draw(response) function for four times and that works fine but
>> > > I feel its kind of redundancy. IS there any thing that I am missing
>> > > here. Waiting for your reply!. If you would like to run this program,
>> > > please copy paste it and it should work.
>> >
>> > > <html>
>> > > <head>
>> > > <script type="text/javascript" src="http://www.google.com/jsapi";></
>> > > script>
>> > >    <script type="text/javascript">
>> > >                google.load('visualization', '1', {packages:
>> ["table"]});
>> > >                 google.setOnLoadCallback(initialize);
>> > >                function initialize() {
>> > >         var query = new google.visualization.Query(
>> > >            'http://spreadsheets.google.com/pub?
>> >
>> > >
>> range=b2:q2&headers=-2&key=pCECuvKSpwpNJZB_pXSUdcg&gid=0&single=true&output=html');
>> > >                 query.setQuery('select B,C,D,E,Q');
>> > >                 query.setQuery('select B,F,Q');
>> > >                 query.setQuery('select F,Q');
>> > >                 query.setQuery('select N,F');
>> > >         query.send(draw);
>> >
>> > >      }
>> > >      function draw(response) {
>> > >        if (response.isError()) {
>> > >          alert("Error in query")
>> > >        }
>> > >        var Data1 = response.getDataTable();
>> > >        var table1 = new google.visualization.Table
>> > > (document.getElementById('table1_div'));
>> > >        table1.draw(Data1, {});
>> > >      }
>> > >    </script>
>> > > </head>
>> > > <body>
>> > > <div id="table1_div" ></div><br />
>> > > </body>
>> > > </html>
>> >
>> > > On Dec 3, 2:54 pm, Pragan <[email protected]> wrote:
>> > > > hi,
>> >
>> > > > Please check the below example. In this example, I can get the data
>> > > > from the spreadsheet for the range I have specified(a12:B12).
>> >
>> > > >  seMy question is: As I have the complete data set for this row 12,
>> I
>> > > > want to display the value from C12 in one place, E12 in other place
>> > > > and so on in my website.
>> >
>> > > > I will be able to do this if I keep adding more queries for each
>> cell
>> > > > like this:
>> > > >  var query = new google.visualization.Query('http://
>> > > > spreadsheets.google.com/pub?
>> > > > range=c12&headers=-1&key=pCECuvKSpwpOhprF4JsyUQA&gid=0');
>> > > > or
>> > > >  var query = new google.visualization.Query('http://
>> > > > spreadsheets.google.com/pub?
>> > > > range=E12&headers=-1&key=pCECuvKSpwpOhprF4JsyUQA&gid=0');
>> >
>> > > > so I want to know if I can achieve the above case as I have the
>> entire
>> > > > row through my one query(using range).
>> > > > I am ready to use any other scripting language(like php) to make
>> this
>> > > > happen..but I want to know if its going to be more  straight forward
>> > > > and easy way than I think.
>> >
>> > > > thanksPragan
>> >
>> > > > Example:
>> > > > <html>
>> > > > <head>
>> >
>> > > >   <style type=text/css>
>> > > >   .google-visualization-table-td-right {color:#ff0000;font-
>> > > > weight:bold;}
>> > > >   </style>
>> > > >    <script type="text/javascript" src="http://www.google.com/jsapi
>> "></
>> > > > script>
>> > > >    <script type="text/javascript">
>> > > >         google.load('visualization', '1', {packages: ['table']});
>> > > >         google.setOnLoadCallback(drawTable);
>> > > >         google.load("visualization", "1",
>> > > {packages:["annotatedtimeline"]});
>> > > >         google.setOnLoadCallback(drawChart);
>> >
>> > > >         function drawChart() {
>> > > >        var query = new google.visualization.Query('http://
>> > > > spreadsheets.google.com/pub?
>> > > > range=a12:Q12&headers=-1&key=pCECuvKSpwpOhprF4JsyUQA&gid=0');
>> > > >         query.send(error);
>> > > >      }
>> > > >      function error(response) {
>> > > >        if (response.isError()) {
>> > > >          alert('Error in query: ' + response.getMessage() + ' ' +
>> > > > response.getDetailedMessage());
>> > > >          return;
>> > > >        }
>> > > >        var data = response.getDataTable();
>> > > >        var table_excel = new google.visualization.Table
>> > > > (document.getElementById('table_div'));
>> > > >        table_excel.draw(data, {showRowNumber: false});
>> >
>> > > >     }
>> > > >           function drawTable() {
>> > > >                  var data = new google.visualization.DataTable();
>> > > >                 }
>> >
>> > > > </script>
>> > > > </head>
>> > > > <body>
>> > > >  <div id="table_div"></div>
>> > > > </body>
>> > > > </html>
>> >
>> > > > On Dec 2, 4:56 pm,Pragan<[email protected]> wrote:
>> >
>> > > > > Hi,
>> >
>> > > > > thanks again. I guess you got me right. I will post an example in
>> > > > > sometime and then ask my question with better explanation.
>> >
>> > > > > thankspragan.
>> >
>> > > > > On Dec 2, 4:38 pm, VizGuy <[email protected]> wrote:
>> >
>> > > > > > So if I get you right, you will send a query to a range.Then you
>> KNOW
>> > > that
>> > > > > > your data table has 2 columns, and x rows.
>> > > > > > It should be quite simple to map a cell in the spreadsheet to a
>> cell
>> > > in the
>> > > > > > data table.
>> >
>> > > > > > Am I missing anything?
>> >
>> > > > > > VizGuy
>> >
>> > > > > > On Tue, Dec 2, 2008 at 9:47 PM,Pragan<[email protected]>
>> wrote:
>> >
>> > > > > > > Hi,
>> >
>> > > > > > > > 2. You can query for the whole range, and then use only the
>> cells
>> > > you
>> > > > > > > > want. This might end up as a lower latency approach, as the
>> size
>> > > is still
>> > > > > > > > small, and you save a round trip.
>> >
>> > > > > > > Thanks for the clarification. I can go with the second
>> approach,
>> > > but
>> > > > > > > how we can just show the required cell after getting the data?
>> For
>> > > > > > > example, if my query for a range(c2:Q2) is giving the whole
>> row
>> > > with
>> > > > > > > data then how can I just display D2 in one place and R2 in
>> other
>> > > > > > > place?
>> >
>> > > > > > > Thanks again.
>> > > > > > >Pragan.
>> >
>> > > > > > > On Dec 2, 12:56 pm, VizGuy <[email protected]> wrote:
>> > > > > > > > If you are not using a gadget, but writing your own js, you
>> can
>> > > do one of
>> > > > > > > > two things:1. To send two queries to the same spreadsheet,
>> each
>> > > to a
>> > > > > > > single
>> > > > > > > > cell (or any other range).
>> > > > > > > > 2. You can query for the whole range, and then use only the
>> cells
>> > > you
>> > > > > > > > want. This might end up as a lower latency approach, as the
>> size
>> > > is still
>> > > > > > > > small, and you save a round trip.
>> > > > > > > > There is no way to specify more than one range in the
>> request.
>> >
>> > > > > > > > VizGuy
>> >
>> > > > > > > > On Tue, Dec 2, 2008 at 7:10 PM,Pragan<[email protected]>
>> > > wrote:
>> >
>> > > > > > > > > Hi,
>> >
>> > > > > > > > > I am using visualization api by having spreadsheet as data
>> > > source. I
>> > > > > > > > > am able to get the output for the range I define. For
>> example,
>> > > if I
>> > > > > > > > > just want to show the data from A1-Q1 or A1-Q20, then I
>> specify
>> > > the
>> > > > > > > > > range and it
>> > > > > > > > > works fine. Same way I am able to define the individual
>> cell
>> > > like A5
>> > > > > > > > > or B8.
>> >
>> > > > > > > > > My question is : In a page, if I want to show data from A5
>> in
>> > > one
>> > > > > > > > > place and in other place if I want to show B10  then how
>> > > > > > > > > can I do it without repeating the query again? Is there
>> any way
>> > > to
>> > > > > > > > > store all the data(complete data from that sheet) in our
>> local
>> > > db like
>> > > > > > > > > mysql
>> > > > > > > > > and then show the specific value based on the query? Or
>> Can we
>> > > store
>> > > > > > > > > the complete data in an array format and then show the
>> required
>> > > values
>> > > > > > > > > by calling the element?
>> > > > > > > > > If the above methods are possible, how to do it??
>> >
>> > > > > > > > > Please let me know, if there is any other simple or easy
>> > > solution.
>> >
>> > > > > > > > > thanks
>> > > > > > > > >pragan.
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to