如何使用带有ajax和php的复选框显示sql查询

时间:2017-05-01 17:21:27

标签: php jquery ajax checkbox

我有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'

这是一种正确的做法吗?还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

不要将其转换为字符串

在前端,删除toString方法

在PHP文件中你可以这样做

 $array = $_POST['qry'];
 $listCheck = "'" . implode("','", $array) . "'";
 echo $sql6 = "SELECT * FROM Store WHERE Name LIKE IN ($listCheck)";