我可以很好地得到结果,但是每个数据值结果都是逗号分隔的,因为它是一个数组。我想在没有任何逗号的情况下进行查询,也可以删除最后一个AND。
这可能吗?
的jQuery
//Submit Adv Search
$('#submitAdvSearch').click(function(){
var query = "SELECT * FROM table WHERE ";
var yo = $('.subCat span[data-value].checked').map(function(){
return $(this).attr('data-value')+'=1 AND ';
}).get();
console.log(query+' '+yo);
});
HTML
<div class="cat">
<div class="catTitle">
<h2>Performance</h2>
<span class="arrow"></span>
<br class="clear"/>
</div>
<div class="subCat" data-cat="performance">
<div>
<span data-all="all">○ Tous</span><br>
<div class="after">
<span data-value="30000_doublefrotements" class="checked">○ +30,000 double frottement</span><br>
<span data-value="atcc96_lavablecommercial">○ ATTCC 96</span><br>
<span data-value="nfpa701_inifuge">○ NFPA 701</span><br>
<span data-value="resistanrayonsuv">○ Uv résistant</span>
</div>
</div>
</div>
</div>
<div class="cat">
<div class="catTitle">
<h2>Style</h2>
<span class="arrow"></span>
<br class="clear"/>
</div>
<div class="subCat" data-cat="style">
<div>
<span data-all="all">○ Tous</span><br>
<div class="after">
<span data-value="contemporain" class="checked">○ Contemporain</span><br>
<span data-value="traditionnel">○ Traditionel</span><br>
<span data-value="transitionnel" class="checked">○ Transitionel</span>
</div>
</div>
</div>
</div>
<div id="submitAdvSearch">Submit</div>
结果
SELECT * FROM table WHERE 30000_doublefrotements=1 AND ,contemporain=1 AND ,transitionnel=1 AND
答案 0 :(得分:3)
使用join(" AND ")
在每个条件之间连接AND
:
var yo = $('.subCat span[data-value].checked').map(function() {
return $(this).attr('data-value')+'=1';
}).get();
console.log(query + yo.join(" AND "));
This会给你:
SELECT * FROM table WHERE 30000_doublefrotements=1 AND contemporain=1 AND transitionnel=1
答案 1 :(得分:0)
试试这个:
//Submit Adv Search
$('#submitAdvSearch').click(function(){
var query = "SELECT * FROM table WHERE ";
var yo = $('.subCat span[data-value].checked').map(function(){
return $(this).attr('data-value')+'=1 AND ';
}).get();
yo = yo.join(' ').replace(/\s*AND\s*$/, '');
console.log(query+' '+yo);
});
答案 2 :(得分:0)
这对我有用:
//Submit Adv Search
$('#submitAdvSearch').click(function(){
var query = "SELECT * FROM table WHERE ";
var where_clause = [];
var yo = $('.subCat span[data-value].checked').map(function(){
var item = $(this).attr('data-value')+'=1';
where_clause.push(item);
}).get();
console.log(query+' '+ where_clause.join(" AND "));
});