我正在编写一个 PHP 自我评估表,它有 5 个问题类别,每个类别 10 个问题。在应用程序的开头,我有 5 个复选框来表示这些类别,它们会被自动选中。这个想法是,每当用户取消选中一个类别时,该类别的问题会立即从表单中消失,当他们再次检查时,它们会回来。在 jQuery 和 AJAX 的帮助下应该可以实现的东西。
我使用 CodeIgniter 的 form_helper 制作了复选框:
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);
}
我有一个功能可以在类别 ID 之后从数据库中打印该类别的所有 10 个问题,当我按原样发布它们时效果很好:
$this->formapp_model->printCategory(1);
$this->formapp_model->printCategory(2);
$this->formapp_model->printCategory(3);
$this->formapp_model->printCategory(4);
$this->formapp_model->printCategory(5);
使用这个帮助: 通过 jQuery 将复选框是否被选中,传递给 PHP 我能够为 jQuery 收集它,我需要类似的东西
var category1 = $('#category1:checked').val();
为了检查复选框是否已被选中。我也试过
var category1 = $('#category1:checked').post();
因为使用 post 来让 PHP 识别它似乎是合乎逻辑的。
对于打印选择,例如
if (isset($_POST['category 1'])) { $this->formapp_model->printCategory(1); } else { echo "This category is not selected."; }
我试过了,但 PHP 无法识别 jQuery 给出的消息,这意味着无论复选框是否被选中,该类别的问题都会永久消失。我检查echo var_export($_POST);
并注意到所有 jQuery 打印出来的是:array ()。上面提到的问题非常有用,但错过了一些我需要让它工作的信息。提问者还使用数组而不是单独的变量,所以我不知道如何正确编辑它。
我是 jQuery 和 AJAX 的完全新手,所以我很难掌握我需要什么才能让 jQuery 和 PHP 按照我描述的方式进行动态通信。我在 stackoverflow 上跑来跑去寻找类似的案例,但没有一个完全满足我的需要。但是,如果这是一个重复的问题,我深表歉意。感谢任何帮助的人!