在CodeIgniter中将选中的复选框从jQuery传递到PHP

在CodeIgniter中将选中的复选框从jQuery传递到PHP,php,jquery,ajax,codeigniter,checkbox,Php,Jquery,Ajax,Codeigniter,Checkbox,我正在编写一个PHP自我评估表单,它有5个问题类别,每个类别有10个问题。在应用程序的开头,我有5个复选框来表示这些类别,它们会被自动选中。其思想是,每当用户取消选中某个类别时,该类别的问题就会立即从表单中消失,当他们再次检查时,它们就会回来。在jQuery和AJAX的帮助下应该可以实现的东西 我用CodeIgniter的form_助手制作了复选框: for($i = 1; $i<=5; $i++) { $this->formapp_model->printCatName($i

我正在编写一个PHP自我评估表单,它有5个问题类别,每个类别有10个问题。在应用程序的开头,我有5个复选框来表示这些类别,它们会被自动选中。其思想是,每当用户取消选中某个类别时,该类别的问题就会立即从表单中消失,当他们再次检查时,它们就会回来。在jQuery和AJAX的帮助下应该可以实现的东西

我用CodeIgniter的form_助手制作了复选框:

for($i = 1; $i<=5; $i++) {
$this->formapp_model->printCatName($i);
$data = array('name'=>'category$i', 'id'=>'category$i', 'value'=>'$i', 'checked'=>TRUE);
echo form_checkbox($data);
}
借助以下工具: 我能够为jQuery收集这些信息,我需要

var category1 = $('#category1:checked').val();
if (isset($_POST['category 1'])) { $this->formapp_model->printCategory(1); } else { echo "This category is not selected."; }
以检查是否已选中该复选框。我也试过了

var category1 = $('#category1:checked').post();
因为使用post来识别它似乎是合乎逻辑的

对于打印选择,类似

var category1 = $('#category1:checked').val();
if (isset($_POST['category 1'])) { $this->formapp_model->printCategory(1); } else { echo "This category is not selected."; }
我试过了,但PHP无法识别jQuery给出的消息,这意味着无论复选框是否选中,类别的问题都会永久消失。我用echo var\u export($\u POST)进行了检查并注意到jQuery打印出来的全部内容是:array()。上面提到的问题内容非常丰富,但遗漏了一些我需要的信息,以便让它发挥作用。asker也使用数组而不是单独的变量,所以我不知道如何正确地编辑它


我是jQuery和AJAX的新手,所以我很难掌握我需要什么,以便让jQuery和PHP按照我描述的方式进行动态通信。我在stackoverflow周围跑来跑去寻找类似的案例,但没有一个完全符合我的需要。但是,如果这是一个重复的问题,我深表歉意。谢谢你的帮助

PHP是服务器端,您需要在客户端显示/消失问题,这意味着您希望使用jQuery本身(或常规js)实现这一点,但由于您已经在加载jQuery,因此只使用库本身会更快

老实说,我并没有真正了解你的观点是如何运作的,所以我只会给你一些基本的代码来告诉你这个想法。创建复选框和问题,为每个复选框提供唯一的ID。然后在复选框的单击方法中,确定要显示的问题

HTML:


演示:

太好了,很高兴我能帮忙。
$(".check").on("click",function(){
    var id = $(this).attr("id");
    var id2 = id.substr(id.length -1);
    var question = "question"+id2;
    if($(this).is(":checked"))
    {
        $("#"+question).css("display","block");
    } else {
        $("#"+question).css("display","none");
    }
});