PHP&MySQL查询依赖于复选框

PHP&MySQL查询依赖于复选框,php,jquery,html,mysql,Php,Jquery,Html,Mysql,我需要一些关于MySQL、jquery和PHP的帮助。 这是我的密码: HTML 我想把它改成: SELECT * from site WHERE codeSite=$theOneThatIsChecked; 实际上,我只想根据检查或记录的内容建立一个sql查询。例如,如果选中了code_site1,我希望SQL查询如下: SELECT * from site WHERE codeSite=1; 这几乎是我正在尝试做的,但我真的不知道如何在PHP中不提交它 你能帮我吗 非常感谢 编辑: 首先

我需要一些关于MySQL、jquery和PHP的帮助。 这是我的密码:

HTML

我想把它改成:

SELECT * from site WHERE codeSite=$theOneThatIsChecked;
实际上,我只想根据检查或记录的内容建立一个sql查询。例如,如果选中了code_site1,我希望SQL查询如下:

SELECT * from site WHERE codeSite=1;
这几乎是我正在尝试做的,但我真的不知道如何在PHP中不提交它

你能帮我吗

非常感谢

编辑:

首先,谢谢你的回答。我尝试了不同的解决方案,但我仍然有一个问题

事实上,我所做的是: -在我的主页index.php上,我有一个ajax脚本,当我单击submit按钮时,它指向do.php, -在do.php页面上,我根据选中的复选框存储查询, -最后,感谢:

success:function(data){
  alert(data);          
}  
我可以打印我在do.php上的查询。我想知道是否可以将其存储在主页上的php变量中,以便在主页上执行查询

谢谢大家!

使用Ajax

$document.readyfunction{ $flip.clickfunction{ $panel.slideToggleslow; 如果$'input[name=checkbox]'.is':已选中{ var checkedValue=$input[type='checkbox'].val; var data={id:checkedValue}; //使用选中的值发出ajax请求 $.ajax{ url:url, 数据:数据 成功:功能响应{ //过程响应 }, 类型:“POST” }; }; }; }
如果我理解正确,您将需要将post值存储到变量中,并在sql查询中使用该变量

更改输入名称,使它们都相同,然后只添加一个值

像这样

<label class="checkbox"><input type="checkbox" value="1" name="code_site" class="code_site1" checked="checked">Code 1</label>
<label class="checkbox"><input type="checkbox" value="2" name="code_site" class="code_site2" checked="checked">Code 2</label>
那么您的查询将被删除

SELECT * from site WHERE codeSite=$var;

因此,如果请求发送正确且没有问题 您可以将复选框的名称更改为name=code\u site[]

表格示例:

如果你想提交,表格应该是这样的 然后在查询端,您可以执行以下操作

因为您正在使用复选框,所以我假设用户可以检查多个值,所以您需要在中使用

$codeSites = [];
if($_POST['code_site'])
    $text = $_POST['code_site'];
$query = "select * from codeSite where codeSite in (" . implode($codeSites, ',') . ")";
echo $query; // use it 
确定你需要做一些输入消毒吗

或者您可以这样做:
你在谷歌和这里做过搜索吗?因为你问的同一个问题有很多答案,可能会有所不同,但这些答案都是一样的,只需要调整一下就可以了。你可以在复选框的更改事件上编写ajax,以基于选中的值获取数据!我在谷歌上搜索过,但大多数结果都需要提交按钮,这是我不想要的@AshishRana,你有一个语法示例吗?@Stefey Check下面回答说,Samuel,谢谢你的回答。我想这可能对我有好处,但我不理解从未使用过的Ajax语法。它是否执行url值中的sql查询?什么应该包含数据变量?不,它不包含。它向php代码发出请求,并在后台返回所有这些结果,而无需重新加载或刷新页面。看看这个。嗨,哈桑,我试过你的方法,但结果是:从site中选择*在数组中,typeSite的值是$query。我能做什么?嗨@Stefey,你应该内爆数组,所以它应该是内爆$codeSites,,“所以你有这样一个结果:从site中选择*from,其中typeSite in1,2,3;
<label class="checkbox"><input type="checkbox" value="1" name="code_site" class="code_site1" checked="checked">Code 1</label>
<label class="checkbox"><input type="checkbox" value="2" name="code_site" class="code_site2" checked="checked">Code 2</label>
if (isset($_POST['btn-checkbox'])){
$var = $_POST['codesite']
} 
SELECT * from site WHERE codeSite=$var;
<form method="POST">
 <input type="checkbox" name="code_site[]" value="1">
 <input type="checkbox" name="code_site[]" value="2">
 <input type="checkbox" name="code_site[]" value="3">
 <input type="checkbox" name="code_site[]" value="4">
 <input type="submit">
</form>
$(document).ready(function(){
    $("#flip").click(function(){
        var data = { 'code_site[]' : []};
        $("input:checked").each(function() {
            data['code_site[]'].push($(this).val());
         });
        $.post("do.php", data);
    });

});
$codeSites = [];
if($_POST['code_site'])
    $text = $_POST['code_site'];
$query = "select * from codeSite where codeSite in (" . implode($codeSites, ',') . ")";
echo $query; // use it 
$codeSites = [];
if($_POST['code_site'])
    $text = $_POST['code_site'];
$query = "select * from codeSite where codeSite in ('" . implode($codeSites, '\',\'') . "')";
echo $query; // use it