0

ユーザー入力に基づいて where 条件を動的に生成する方法はありますか? オプション '>','<','equals','starts with','ends with' を含む選択ボックスがあります。この条件 where 句に基づいていますを生成し、クエリを実行する必要があります。私を助けてください。例が必要です。テーブルに約 80 列あるため、if else ループを使用できません。

function querymap()


{
var querypass=document.getElementById('query-pass').value.replace(/'/g, "\\'");
 if(querypass=='hhSanitHouseType')
   {
     var operator=document.getElementById('operatorstring').value.replace(/'/g, "\\'");
     if(operator=='>')
        { 
          var textvalue=document.getElementById("text-value").value.replace(/'/g, "\\'");
          layer.setQuery("SELECT 'geometry',hhSanitHouseType FROM " + tableid + " WHERE 'hhSanitHouseType' > '" + textvalue + "'");


        }
     }
   else
   {
   alert("false");
   }
}
4

1 に答える 1

0

この例、特に関数を確認できるかもしれませんgenerateWhere(columnName, low, high)

演算子に if/else を使用する必要はありません。有効な入力を確認するだけです (つまり、演算子が '>'、'<'、'equals'、'starts with'、'ends with' のいずれかであること)。そして、それをクエリに直接渡します。

 var operator = ...;
 var textvalue = ...;
 layer.setQuery("SELECT 'geometry',hhSanitHouseType FROM " + tableid + " WHERE 'hhSanitHouseType'" + operator + " '" + textvalue + "'");
于 2012-04-10T15:54:15.313 に答える