Daniel Montenegro
Daniel Montenegro

Reputation: 1559

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 + "'"
      }
   });
}

Upvotes: 0

Views: 156

Answers (1)

Odi
Odi

Reputation: 6916

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 + "'"
        }
    });

Upvotes: 1

Related Questions