On 3/20/07, william paul <[EMAIL PROTECTED]> wrote:
Hi:

I am using Dbox and the example provided by Rich Greenwood, to map the
results from a database query. I have modified the script so you can change
the queryfile, qitem and qstring. The script works OK on 1 layer, but for
others I get NaN. Before to map the results I test ( alert(qlayer, qitem,
qstring)) to see if the queryfile, qitem and qstring are correct. Even
though I have the core ct names for each one I still get NaN results
What could be the problem?

script from the database query results
<script type="text/javascript" language="javascript">
var qlayer = "anyQlayer";
var qitem = "anyQitem";
function map(qstring)
{
opener.itemQueryModified(qstring, qitem, qlayer);
window.close();
opener.focus();
}
</script>


modified itemQuery script
 ms.itemqueryoptions = "&mapext=shapes&savequery=true&";
 function itemQueryModified(qstring, qitem, qlayer)
 {
  //ms.setLayer(qlayer, true);
  var uri = ms.mapserver + '?map=' + ms.mapfile + "&layers=" +
ms.getLayers("+") + "&mapsize=" + ms.width + "+" + ms.height;
  uri += ms.itemqueryoptions;
  uri += '&mode=itemquery'
  uri += '&qlayer=' + qlayer;
  uri += '&qitem=' + qitem;
  uri += '&qstring=' + qstring;
       var response = get_content(uri);
       var tokens = response.split(',');
  alert(qstring + qitem + qlayer + ", " + Number(tokens[1]),
Number(tokens[2]), Number(tokens[3]), Number(tokens[4]));
       ms.setExtent(Number(tokens[1]), Number(tokens[2]), Number(tokens[3]),
Number(tokens[4]));
       main.setImage(tokens[5]);
       ms.savedqueryfile=tokens[6];
  domouseclick('pan');
 }

You probably didn't get a match in your database. NaN means "Not a
Number". MapServer did not return an extent for the selection because
it could not find anything, and so your browser was not able to
convert the tokens 1-4 into numbers.

I try to catch that and tell the user something like "no results found".

Rich

--
Richard Greenwood
[EMAIL PROTECTED]
www.greenwoodmap.com

Reply via email to