Javascript 使用LIKE运算符选择与模式匹配的所有复选框

Javascript 使用LIKE运算符选择与模式匹配的所有复选框,javascript,php,jquery,html,checkbox,Javascript,Php,Jquery,Html,Checkbox,我需要一些指导。我有一个HTML表单,由一个非常长的项目列表组成,这些项目是从数据库查询生成的数组中提取出来的(这是一个大学课程列表)。用户需要能够选择与其研究相关的尽可能多或尽可能少的课程:因为列表中可以有数百个或多个项目,所以我有一个“全选”和一个“全选”功能,并添加了一个jQuery shift-select批选择器,以尽可能地简化此操作 但是,我也希望他们能够在输入框中输入一些文本,然后单击“应用”以使用LIKE运算符选择标签文本模式匹配的所有复选框(即,如果他们想要所有数学课程或2xx

我需要一些指导。我有一个HTML表单,由一个非常长的项目列表组成,这些项目是从数据库查询生成的数组中提取出来的(这是一个大学课程列表)。用户需要能够选择与其研究相关的尽可能多或尽可能少的课程:因为列表中可以有数百个或多个项目,所以我有一个“全选”和一个“全选”功能,并添加了一个jQuery shift-select批选择器,以尽可能地简化此操作

但是,我也希望他们能够在输入框中输入一些文本,然后单击“应用”以使用LIKE运算符选择标签文本模式匹配的所有复选框(即,如果他们想要所有数学课程或2xx级别的所有课程)。该项目使用PHP和JavaScript/jQuery/AJAX

我知道如何基于LIKE查询从数据库中提取数据,但对于如何最好地循环生成的表单并以表单中的项目为目标,我有点困惑。(我的PHP非常强大,我的jQuery有点不稳定)

复选框列表通过数组中的循环生成,每个项目设置如下:

$o .= '<input id="'.$rw[2].'_'.$rw[0].'"
type=checkbox  name="' . $rw[2].'_'. $rw[0]. '" />';
$o .= '<label for="'.$rw[2].'_'. $rw[0].'"> ' . $rw[1] . '</label>';
$o .= '</td>';
$o.='';
$o.=''$rw[1]。';
$o.='';
因此,我们最终得到了一个简单的复选框表单,其中包含一个标签和标签文本,所有项目都命名为数组键

这是典型项目的HTML输出:

<tr><td><input id="110_105" type=checkbox name="110_105" />
<label for="110_105"> PHIL233</label></td></tr>

费城233
很抱歉,如果这个描述有点长,但我需要的是一个想法,如何在表单生成后循环表单元素,为模式匹配的每个项目选择复选框

希望这有意义


Tamra

这种情况非常适合使用AJAX过滤复选框列表。我极力主张这样做

但是如果您需要在客户端上进行过滤,那么使用JavaScript就相当容易了

//give the labels a class so they are easy to find
var labels = document.getElementsByClassName('course-name');
//filtering text field
var query = document.getElementById('query');
//'apply' button
var queryBtn = document.getElementById('query-submit');

queryBtn.addEventListener('click', function() {

    for (var i = 0; i < labels.length; i += 1) {

        var label = labels[i];
        var text = label.innerText;

        if (text === query.value) {

            label.previousElementSibling.checked = true;
        }
    }

}, false);
//为标签指定一个类,以便它们易于查找
var labels=document.getElementsByClassName('course-name');
//过滤文本字段
var query=document.getElementById('query');
//“应用”按钮
var queryBtn=document.getElementById('query-submit');
queryBtn.addEventListener('click',function(){
对于(变量i=0;i
您可以使用jQuery查找方法进行尝试

有了它和“属性包含选择器”,您就可以完成这个任务


您可能想在操作符中查看SQL
。谢谢,但我不确定是否理解。我知道如何使用IN运算符进行查询,但此时我正在处理的数据不在数据库中,而是已经生成的HTML表单。我将如何使用IN来查找HTML表单中的信息?您将如何使用LIKE“querys”?不清楚你在问什么。也许像这样的东西能帮上忙?请查看旁边的一些不同示例。对不起,我的意思是我将使用类似于LIKE查询的东西。谢谢,谢谢!我要试一试!也谢谢你。我将对此进行尝试,但您为我提供了一个很好的案例,说明了为什么我还应该更多地了解如何在AJAX中实现这一点。干杯