【问题标题】:fusiontable query for wherewhere 的 fusiontable 查询
【发布时间】:2012-04-10 04:29:39
【问题描述】:

有什么方法可以根据用户输入动态生成 where 条件。我有一个选择框,选项为 '>'、'

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

【问题讨论】:

    标签: google-maps-api-3 google-fusion-tables


    【解决方案1】:

    也许你可以check this example,尤其是函数generateWhere(columnName, low, high)

    您不必为您的运算符使用 if/else,只需检查有效的输入(即运算符是 '>'、'

     var operator = ...;
     var textvalue = ...;
     layer.setQuery("SELECT 'geometry',hhSanitHouseType FROM " + tableid + " WHERE 'hhSanitHouseType'" + operator + " '" + textvalue + "'");
    

    【讨论】:

    • 如果假设我有三个变量,例如'columnname','operator','textvalue'。是否可以将columnname 作为变量并将其传递给查询。请告诉我如何执行此操作。
    • 我不想在查询中指定hhSanitHouseType。它也应该直接从另一个名为'columnname'的变量中获得。
    • @user1225902 是的,当然它就像其他变量一样,只需使用var columnname=document.getElementById("columnname").value 之类的形式从表单中获取值,然后在查询中使用它:layer.setQuery("SELECT 'geometry'," + columnname + " FROM " + tableid + " WHERE " + columnname + " " + operator + " '" + textvalue + "'");
    • 谢谢……我只是期待这个……我明白了……这非常适合我的代码……
    • 有了这个我必须添加'and'条件。
    猜你喜欢
    • 2023-03-22
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多