0

チェックボックスをオンにすると、マップ上の関連するポイントが設定されます。

これはうまくいきます:

var type_column = "FastFood";
var searchType = type_column + " IN (-1,";
if ( $("#divType1").is(':checked')) searchType += "1,";
if ( $("#divType2").is(':checked')) searchType += "2,";
if ( $("#divType3").is(':checked')) searchType += "3,";
if ( $("#divType4").is(':checked')) searchType += "4,";
whereClause += " AND " + searchType.slice(0, searchType.length - 1) + ")";

しかし、これはしません:

var type_column = "FastFood";
var searchType = type_column + " IN (-1,";
if ( $("#divType1").is(':checked')) searchType += "Arbys,";
if ( $("#divType2").is(':checked')) searchType += "Burgerking,";
if ( $("#divType3").is(':checked')) searchType += "Checkers,";
if ( $("#divType4").is(':checked')) searchType += "Dairyqueen,";
whereClause += " AND " + searchType.slice(0, searchType.length - 1) + ")";

「Arbys」を「a」に変更する(など)も機能しないため、文字数の問題ではありません。コンマを含まない文字列を一重引用符で囲んでみました。(悲しいことに、数字だけを使用することは、他の無関係な理由のためのオプションではありません。)

4

3 に答える 3

0

substringの代わりに使用することをお勧めしますsliceslice文字列用ではなく、配列用です。

于 2013-01-17T23:02:27.063 に答える
0

まったく、あなたのソリューションは非常にハックです。クライアント側ではなく、クエリを作成する必要があります。これとは別に、次のコードがより良い解決策になる場合があります。

var type_column = "FastFood";
var whereClause = [];
if ( $("#divType1").is(':checked')) whereClause.push("Arbys");
if ( $("#divType2").is(':checked')) whereClause.push("Burgerking");
if ( $("#divType3").is(':checked')) whereClause.push("Checkers");
if ( $("#divType4").is(':checked')) whereClause.push("Dairyqueen");

whereClause += " AND " + type_column + " IN ('" + whereClause.join('\',\'') + "')";
于 2013-01-17T23:04:48.157 に答える
0

検索文字列を配列に追加したい場合があります。そうすれば、「Arbys」のような文字列の末尾にコンマを付けて最後の文字を削除することを心配する必要はありません。代わりに、コンマを区切り文字として使用して配列を結合できます。

var type_column = "FastFood";
var searchType = type_column + " IN (-1,";
var search_array = [];
if ( $("#divType1").is(':checked')) searchArray.push("Arbys");
if ( $("#divType2").is(':checked')) searchArray.push("Burgerking");
if ( $("#divType3").is(':checked')) searchArray.push("Checkers");
if ( $("#divType4").is(':checked')) searchArray.push("Dairyqueen");
whereClause += " AND " + searchType + searchArray.join(',') + ")";
于 2013-01-17T23:06:27.563 に答える