Select to view content in your preferred language

Query task with Autocomplete

2081
2
04-01-2013 01:05 AM
AshishArora
Deactivated User
Please share an example of Autocomplete text search using query task.
0 Kudos
2 Replies
MattLane
Frequent Contributor
ESRI has a geocoder widget with autocomplete here, and it's built into 3.4 I believe.

Here is an autocomplete I wrote a while back with jQuery UI and an ESRI query endpoint:
  $('#txtSearch').autocomplete({
    source: function (request, response) {
      $.ajax({
        url: "http://someurl/ArcGIS/rest/services/someservice/MapServer/0/query",
        dataType: "jsonp",
        data: {
          where: "FIELDNAME LIKE '" + request.term.replace(/\'/g, '\'\'') + "%'",//makes single quotes into double for sql
          outFields: "FIELDNAME",
          returnGeometry: false,
          f: "pjson"
        },
        success: function (data) {
          if (data.features) {
            response($.map(data.features.slice(0, 9), function (item) {//only display first 10
              return { label: item.attributes.FIELDNAME, value: item.attributes.FIELDNAME }
            }));
          }
        }
      });
    },
    minLength: 3,
    select: function (event, ui) {
      this.blur();
      var query = new esri.tasks.Query();
      query.returnGeometry = true;
      query.outFields = ["*"];
      query.where = "FIELDNAME = '" + ui.item.value.replace(/\'/g, '\'\'') + "'";
      queryTask.execute(query,
        fxns.showQueryResult,
        function (e) {
          alert(e.toString());
        }
      );
    }
  });
0 Kudos
AshishArora
Deactivated User
ESRI has a geocoder widget with autocomplete here, and it's built into 3.4 I believe.

Here is an autocomplete I wrote a while back with jQuery UI and an ESRI query endpoint:
  $('#txtSearch').autocomplete({
    source: function (request, response) {
      $.ajax({
        url: "http://someurl/ArcGIS/rest/services/someservice/MapServer/0/query",
        dataType: "jsonp",
        data: {
          where: "FIELDNAME LIKE '" + request.term.replace(/\'/g, '\'\'') + "%'",//makes single quotes into double for sql
          outFields: "FIELDNAME",
          returnGeometry: false,
          f: "pjson"
        },
        success: function (data) {
          if (data.features) {
            response($.map(data.features.slice(0, 9), function (item) {//only display first 10
              return { label: item.attributes.FIELDNAME, value: item.attributes.FIELDNAME }
            }));
          }
        }
      });
    },
    minLength: 3,
    select: function (event, ui) {
      this.blur();
      var query = new esri.tasks.Query();
      query.returnGeometry = true;
      query.outFields = ["*"];
      query.where = "FIELDNAME = '" + ui.item.value.replace(/\'/g, '\'\'') + "'";
      queryTask.execute(query,
        fxns.showQueryResult,
        function (e) {
          alert(e.toString());
        }
      );
    }
  });



Thanks Matt,

I will give it a try 🙂
0 Kudos