2012-04-10 5 views
0

Gibt es eine Möglichkeit zu generieren, wo Bedingung basierend auf Benutzereingaben dynamisch.Ich habe ein Auswahlfeld mit der Option '>', '<', 'gleich', 'beginnt mit', 'endet mit' . Basierend auf dieser Bedingung, wo die Klausel generiert werden sollte und Abfrage ausgeführt werden sollte. Bitte helfen Sie mir. Ich brauche Beispiele. da ich ungefähr 80 Spalten in meiner Tabelle habe, kann ich nicht benutzen, wenn sonst Schleife.fusiontable Query für wo

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

Antwort

0

Vielleicht können Sie check this example, vor allem die Funktion generateWhere(columnName, low, high).

Sie müssen if/else nicht für Ihren Operator verwenden, sondern nur nach einer gültigen Eingabe suchen (dh der Operator ist einer von '>', '<', 'equals', 'beginnt mit', ' endet mit ') und dann übergeben Sie es direkt an Ihre Abfrage, so etwas

+0

danke! einfache und großartige Idee ...... – 7783

+0

Wenn ich drei Variablen habe wie 'Spaltenname', 'Operator', 'Textwert'. Ist es möglich, Spaltenname als Variable zu erhalten und an query.please zu übergeben tel mir wie mach das. – 7783

+0

Ich möchte nicht angeben, dass hhSanitHouseType auch in der Abfrage.Es sollte auch direkt von einer weiteren Variablen mit dem Namen 'Spaltenname' abgerufen werden. – 7783