我有一组复选框,选中后,应填充地图上的相关点。
这很有效:
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”(依此类推)也不起作用,因此不是字符数。我也尝试在不包含逗号的字符串周围添加一组单引号。 (遗憾的是,仅仅使用这些数字不是其他无关原因的选择。)
答案 0 :(得分:0)
您可能希望使用substring
代替slice
。 slice
用于数组,不用于字符串。
答案 1 :(得分: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('\',\'') + "')";
答案 2 :(得分: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(',') + ")";