我有3个复选框,当我点击它时,它应该更改sql字符串并向我显示一个新的SQL查询。
我的HTML代码:
<div id="#check_article">
<input type="checkbox" value="Iphone">Iphone
<input type="checkbox" value="Samsung">Samsung
<input type="checkbox" value="Nokia">Nokia
</div>
我的剧本:
var arr = [];
$('input[type=checkbox]').change(function () {
if ($(this).prop("checked")) {
var value = $(this).val();
arr.push(value);
}
else {
arr.splice($.inArray($(this).val(),arr),1);
}
var new_string = arr.toString();
console.log(new_string);
});
所以当我点击复选框时,我的console.log会在字符串中显示正确的值。当我取消选中该框时,它会删除字符串中的值。
现在我必须用ajax将它传递给服务器。
$.ajax({
url:"query.php",
method:"POST",
data: {'qry':new_string},
success:function(data) {
('#result').html(data);
}
});
在php方面......我喜欢用这个
搜索一篇检查过的文章$sql = "SELECT * FROM Store WHERE Name LIKE 'mobilePhone' AND Article='....'
AND Article='....'" AND Article='....';
但我意识到我必须格式化我的字符串。
我的字符串现在是:"Iphone,Nokia,Samsung"
但我需要它改为AND Article= 'Iphone' AND Article = 'Nokia' AND Article='Samsung'
这是一种正确的做法吗?还是有更好的方法?
答案 0 :(得分:0)
不要将其转换为字符串
在前端,删除toString
方法
在PHP文件中你可以这样做
$array = $_POST['qry'];
$listCheck = "'" . implode("','", $array) . "'";
echo $sql6 = "SELECT * FROM Store WHERE Name LIKE IN ($listCheck)";