Search code examples
javascriptgoogle-fusion-tables

Function to filter data -- if... else statement


Thanks a lot, Stefan! But I tried the second 'alternative' but it didn't work. Here's the function:

function filterData() {
   var searchString = document.getElementById('search-string').value.replace(/'/g, "\\'");
   var filter = document.getElementById('filter').value.replace(/'/g, "\\'");
    layer.setOptions({
      query: {
         select: "'geometry'",
         from: '4756019'
         where: "'" + filter + "' = '" + searchString + "'"
      }
   });
}

Solution

  • I put your code on jsFiddle (with my correction): http://jsfiddle.net/odi86/6jvG4/

    You forgot to add the from clause to your filter, if you add it it works just fine:

    if (filter === "UEU") {
        layer.setOptions({
            query: {
                select: "'geometry'",
                from: '4756019',
                where: "'UEU' = '" + searchString + "'"
            }
        });
    }
    else if (filter === "SUBUEU") {
        layer.setOptions({
            query: {
                select: "'geometry'",
                from: '4756019',
                where: "'SUBUEU' = '" + searchString + "'"
            }
        });
    }
    else if (filter === "CODIGO") {
        layer.setOptions({
            query: {
                select: "'geometry'",
                from: '4756019',
                where: "'CODIGO' = '" + searchString + "'"
            }
        });
    }
    

    By the way: you can simplify your code a lot by just doing this (not if-else necessary):

    layer.setOptions({
            query: {
                select: "'geometry'",
                from: '4756019',
                where: "'" + filter + "' = '" + searchString + "'"
            }
        });