Ajax DataGrid Support Product Page
  Solved 
 Set session variable from row click
 Reported  05 Oct 2011  05:32:04 
  2 
      have  this problem  
  05 Oct 2011  05:32:04 Andrew Brown posted: 
 I want to set a session variable from when a user clicks a row. How do I do this?  Official Solution
 Replied 23 Jan 2012  12:44:50 
  Hello,
We've already relesed a new version of Ajax Data Grid that includes a fix. Please download it from our website.
  We've already relesed a new version of Ajax Data Grid that includes a fix. Please download it from our website.
Replies
 Replied 06 Oct 2011  09:37:41 
   06 Oct 2011  09:37:41 Miroslav Zografski replied: 
  Hello Andrew, 
Clicking on the row can trigger a javascript function and passing the value you like to be set in session variable. From there you have two options:
 
  Clicking on the row can trigger a javascript function and passing the value you like to be set in session variable. From there you have two options:
- submitting a hidden form which to pass the value to a server side script which to set this value to a session variable. This will refresh the page.
- making an ajax call with passing that value to a server side script a page that will set this Session variable. This will not refresh the page.
 Replied 07 Oct 2011  01:34:04 
   07 Oct 2011  01:34:04 Andrew Brown replied: 
  Thanks, I am trying to figure out how to call the javascript but not having much success. I can't find any examples to follow.
I did find a javascript that might work, but not sure how to call it. I know if you go into row behaviors, select call Javascript, then click add customer code. But what do I put in there?
Here is the javascript which calls a php that sets the session.
function set_georef_id(str)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP" ;
;
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(str=="hide"
{
document.getElementById("left_side" .style.display='none';
.style.display='none';
document.getElementById("left_side_show" .style.display='';
.style.display='';
}
if(str=="show"
{
document.getElementById("left_side" .style.display='';
.style.display='';
document.getElementById("left_side_show" .style.display='none';
.style.display='none';
}
}
}
xmlhttp.open("GET","set_georef_id.php?georef_id="+str,true);
xmlhttp.send();
}
 
  I did find a javascript that might work, but not sure how to call it. I know if you go into row behaviors, select call Javascript, then click add customer code. But what do I put in there?
Here is the javascript which calls a php that sets the session.
function set_georef_id(str)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"
 ;
;}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(str=="hide"

{
document.getElementById("left_side"
 .style.display='none';
.style.display='none';document.getElementById("left_side_show"
 .style.display='';
.style.display='';}
if(str=="show"

{
document.getElementById("left_side"
 .style.display='';
.style.display='';document.getElementById("left_side_show"
 .style.display='none';
.style.display='none';}
}
}
xmlhttp.open("GET","set_georef_id.php?georef_id="+str,true);
xmlhttp.send();
}
 Replied 07 Oct 2011  10:26:54 
   07 Oct 2011  10:26:54 Miroslav Zografski replied: 
  Hello Andrew, 
In the custom code you need to place following:
set_georef_id({name_of_the_column_that_holds_the_value_you_like_to_set})
  In the custom code you need to place following:
set_georef_id({name_of_the_column_that_holds_the_value_you_like_to_set})
 Replied 07 Oct 2011  14:21:24 
   07 Oct 2011  14:21:24 Andrew Brown replied: 
  Ok, that is what I thought but I was getting an error, must be a datatype issue with the value retrieved from the datagrid and the javascript requiring a string. 
   Replied 12 Oct 2011  01:31:20 
   12 Oct 2011  01:31:20 Andrew Brown replied: 
  Ok still not getting anywhere here. I get the error 
set_georef_id({0});
TypeError: (void 0) is undefined
Seems to me that the {0} is not being translated to a value for the javascript.
I took everything out of the javascript and just put
window.open("GET","set_georef_id.php?georef_id="+str,true);
And still get the same error.
I have also changed this to just going to a URL and it seems like the problem is with not converting the value of georef_id. What am I doing wrong?
Here is the code:
<script type="text/javascript" language="javascript">
<!--
$(function(){$('#dmx_grid2').flexigrid({
url: "ajax_servers/dmx_grid2.php",
title: "Geolocality",
showSearchOnLoad: true,
floatingSearch: true,
sortname: "georef_id",
dataType: "json",
rpOptions: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
onrowclick: "MM_goToURL('parent','set_georef_id.php?georef_id={georef_id}');",
colModel: [{
display: "georef_id",
name: "georef_id",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "point id",
name: "point_id",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "east",
name: "east",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "north",
name: "north",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "zone",
name: "zone",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "datum",
name: "datum",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "latdecimal",
name: "latdecimal",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "longdecimal",
name: "longdecimal",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "posacccode",
name: "posacccode",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "field altitude",
name: "field_altitude",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "locality notes",
name: "locality_notes",
width: 100,
sortable: true,
align: "left",
hide: false
}],
searchitems: [{
display: "georef_id",
name: "georef_id",
isdefault: true
},
{
display: "point id",
name: "point_id"
},
{
display: "east",
name: "east"
},
{
display: "north",
name: "north"
},
{
display: "zone",
name: "zone"
},
{
display: "datum",
name: "datum"
},
{
display: "latdecimal",
name: "latdecimal"
},
{
display: "longdecimal",
name: "longdecimal"
},
{
display: "posacccode",
name: "posacccode"
},
{
display: "field altitude",
name: "field_altitude"
}]
});});
//-->
</script>
  set_georef_id({0});
TypeError: (void 0) is undefined
Seems to me that the {0} is not being translated to a value for the javascript.
I took everything out of the javascript and just put
window.open("GET","set_georef_id.php?georef_id="+str,true);
And still get the same error.
I have also changed this to just going to a URL and it seems like the problem is with not converting the value of georef_id. What am I doing wrong?
Here is the code:
<script type="text/javascript" language="javascript">
<!--
$(function(){$('#dmx_grid2').flexigrid({
url: "ajax_servers/dmx_grid2.php",
title: "Geolocality",
showSearchOnLoad: true,
floatingSearch: true,
sortname: "georef_id",
dataType: "json",
rpOptions: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
onrowclick: "MM_goToURL('parent','set_georef_id.php?georef_id={georef_id}');",
colModel: [{
display: "georef_id",
name: "georef_id",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "point id",
name: "point_id",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "east",
name: "east",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "north",
name: "north",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "zone",
name: "zone",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "datum",
name: "datum",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "latdecimal",
name: "latdecimal",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "longdecimal",
name: "longdecimal",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "posacccode",
name: "posacccode",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "field altitude",
name: "field_altitude",
width: 100,
sortable: true,
align: "left",
hide: false
},
{
display: "locality notes",
name: "locality_notes",
width: 100,
sortable: true,
align: "left",
hide: false
}],
searchitems: [{
display: "georef_id",
name: "georef_id",
isdefault: true
},
{
display: "point id",
name: "point_id"
},
{
display: "east",
name: "east"
},
{
display: "north",
name: "north"
},
{
display: "zone",
name: "zone"
},
{
display: "datum",
name: "datum"
},
{
display: "latdecimal",
name: "latdecimal"
},
{
display: "longdecimal",
name: "longdecimal"
},
{
display: "posacccode",
name: "posacccode"
},
{
display: "field altitude",
name: "field_altitude"
}]
});});
//-->
</script>
Edited by - Andrew Brown on 12 Oct 2011 07:04:36
 Replied 12 Oct 2011  09:51:45 
   12 Oct 2011  09:51:45 Miroslav Zografski replied: 
  Hello Andrew, 
Can you pass in a link to the page in question?
 
  Can you pass in a link to the page in question?
 Replied 12 Oct 2011  12:51:01 
   12 Oct 2011  12:51:01 Andrew Brown replied: 
  Ok I had to recreate via an example as the site I am working on is behind a firewall. So this is just a simple grab of data into the datagrid then a row behavior that should take you to the set_session.php
Still gives the same error.
photomontage.com.au/dmzgrid.php
  Still gives the same error.
photomontage.com.au/dmzgrid.php
 Replied 14 Oct 2011  01:32:32 
   14 Oct 2011  01:32:32 Andrew Brown replied: 
  Still stumped with this, any ideas? 
   Replied 17 Oct 2011  04:48:25 
   17 Oct 2011  04:48:25 Andrew Brown replied: 
  Hi, this seems to have dropped off the radar. It's a really basic task I am trying to perform and it isn't working and I paid for this. 
   Replied 17 Oct 2011  10:11:46 
   17 Oct 2011  10:11:46 Miroslav Zografski replied: 
  Hello Andrew, 
Instead of setting the behavior on row click try using on cell click behavior for test.
 
  Instead of setting the behavior on row click try using on cell click behavior for test.
 Replied 19 Oct 2011  12:22:34 
   19 Oct 2011  12:22:34 Andrew Brown replied: 
  Ok that worked, but why won't it work on the row? 
   Replied 20 Oct 2011  09:58:23 
   20 Oct 2011  09:58:23 Miroslav Zografski replied: 
  Hello Andrew, 
Seems a last minute bug in the packaging.
We are working to get the issue resolved.
 
  Seems a last minute bug in the packaging.
We are working to get the issue resolved.
 Replied 31 Oct 2011  07:21:26 
   31 Oct 2011  07:21:26 Andrew Brown replied: 
  Has this been fixed yet? And also, if I want to pass a URL 2 querystring values, ie georef_id and point_id, how would I do this via the cell behavior 
   Replied 01 Nov 2011  01:11:47 
   01 Nov 2011  01:11:47 Andrew Brown replied: 
  Hi I really need resolution to this as I have a deadline by Friday and I have committed to using this product. 
   Replied 03 Nov 2011  14:58:01 
   03 Nov 2011  14:58:01 Andrew Brown replied: 
  So is there a fix yet? 
   Replied 04 Nov 2011  12:26:13 
   04 Nov 2011  12:26:13 Teodor Kuduschiev replied: 
  Hello Andrew,
The issue will be fixed in the upcoming update.
  The issue will be fixed in the upcoming update.
 Replied 14 Nov 2011  06:55:17 
   14 Nov 2011  06:55:17 Andrew Brown replied: 
  Thanks, also noted that the select cell works on Firefox 3.6 only. ie it's not working on Chrome or IE or later versions of Firefox. 
   Replied 21 Nov 2011  12:36:54 
   21 Nov 2011  12:36:54 Joe Horton replied: 
  When is the next update? 
  Edited by - Joe Horton on 21 Nov 2011 12:47:33
 Replied 23 Jan 2012  12:44:50 
   23 Jan 2012  12:44:50 Teodor Kuduschiev replied: 
  Hello,
We've already relesed a new version of Ajax Data Grid that includes a fix. Please download it from our website.
  We've already relesed a new version of Ajax Data Grid that includes a fix. Please download it from our website.

