0

ステファン、どうもありがとう!しかし、私は2番目の「代替」を試しましたが、うまくいきませんでした。関数は次のとおりです。

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

1 に答える 1

1

私はあなたのコードをjsFiddleに置きました(私の修正で):http://jsfiddle.net/odi86/6jvG4/

フィルタに句を追加するのを忘れました。追加するfromと問題なく機能します。

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

ちなみに、これを行うだけでコードを大幅に簡素化できます(そうでない場合は必要ありません):

layer.setOptions({
        query: {
            select: "'geometry'",
            from: '4756019',
            where: "'" + filter + "' = '" + searchString + "'"
        }
    });
于 2012-08-02T10:27:10.347 に答える