有没有办法动态生成基于用户输入的条件。我有一个选项框,其中包含选项'>','<','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");
}
}
答案 0 :(得分:0)
也许你可以check this example,尤其是函数generateWhere(columnName, low, high)
。
您不必为运营商使用if / else,只需检查有效输入(即运营商是'>','<','等于','以'开头'之一, '以'结尾')然后将其直接传递给您的查询,类似
var operator = ...;
var textvalue = ...;
layer.setQuery("SELECT 'geometry',hhSanitHouseType FROM " + tableid + " WHERE 'hhSanitHouseType'" + operator + " '" + textvalue + "'");