Php 提交表单前抓取复选框值

Php 提交表单前抓取复选框值,php,jquery,Php,Jquery,我有以下循环,它显示了一个复选框和一个答案(从Wordpress抓取): 我不知道从哪里开始所有的循环 您可以执行以下操作: var divContent = ""; $("form input[type=checkbox]:checked").each(function() { divContent += this.value + "<br/>"; }); $("div").html(divContent); var divContent=“”; $(“表单输入[类型=复选

我有以下循环,它显示了一个复选框和一个答案(从Wordpress抓取):


我不知道从哪里开始所有的循环

您可以执行以下操作:

var divContent = "";
$("form input[type=checkbox]:checked").each(function() {
   divContent += this.value + "<br/>";
});
$("div").html(divContent);
var divContent=“”;
$(“表单输入[类型=复选框]:选中”)。每个(函数(){
divContent+=this.value+“
”; }); $(“div”).html(divContent);
我不完全清楚什么时候该执行。从您的问题来看,在我看来,当用户单击submit按钮时应该会发生这种情况,在这种情况下,您只需要将代码放入
$(“表单”).submit(function(){…})

获取所有匹配的复选框,并且每当其中一个复选框更改时,使用复选框的值更新div。

您可以使用选择器


您提供的循环发生在服务器端,因为它是php代码。当您不想在提交前验证表单时,必须在客户机上进行验证,即使用javascript

因此,您将不使用相同的循环,而是创建一个新的循环,该循环在任何复选框更改时运行

我建议您在php循环中的复选框中添加一个类名(如
class='cb\u answer'
)。这将帮助您在执行验证时安全地选择特定复选框

下面是一个脚本片段,每次更改任何复选框时,它都会将所选复选框的值添加到div中。在
之前添加此项。可能需要修改它以满足您的需要

<script>
    // make sure jQuery is loaded...
    $(documet).ready( {
        // when checkboxes are changed...
        $('.cb_answer').on('change', function() {
             // clear preview div...
             $('#answers_preview').html('');
             // loop - all checked checkboxes...
             $('.cb_answer:checked').each(function() {
                 // add checkbox value to preview div...
                 $('#answers_preview').append(this.val());
             });
        });
    });
</script>

//确保jQuery已加载。。。
$(documet).ready({
//当复选框更改时。。。
$('.cb_answer')。on('change',function(){
//清除预览分区。。。
$('#答案"预览版').html('');
//循环-所有选中的复选框。。。
$('.cb_答案:选中')。每个(函数(){
//将复选框值添加到预览分区。。。
$(“#答案_预览”).append(this.val());
});
});
});

假设div预览答案时使用
id='answers\u preview'
,复选框时使用
class='cb\u answer'

如问题中所述,它需要在提交之前,因为它在发送之前充当他们单击的内容的摘要页面。在这种情况下,最好使用PHP显示另一个页面。在这种情况下,您不需要任何jquery。或者,您可以放置一些按钮,如“结束测试”。点击它将隐藏一个表单,并显示摘要div,其中复选框数据将通过提交和返回按钮显示。是否有可能获得更多关于这里发生的事情的信息?@Rob-我将尝试解释一下?我知道您在提交之前已经提到过,但是当有人点击提交按钮时,向元素添加内容就有点晚了,因为页面即将重新加载。每当复选框发生更改时,这将使用id
myDiv
更新div,这可能是首选的解决方案,而不是在提交时这样做。
var divContent = "";
$("form input[type=checkbox]:checked").each(function() {
   divContent += this.value + "<br/>";
});
$("div").html(divContent);
var boxes = $('input[type="checkbox"][name^="answer"]');

$('#myDiv').empty();

boxes.on('change', function() {
    boxes.filter(':checked').each(function(i, box) {
        $('#myDiv').append(box.value);
    });
});
$.each("#mycheckbox:checked", function() {
    $("div").append(this.val());
});
<script>
    // make sure jQuery is loaded...
    $(documet).ready( {
        // when checkboxes are changed...
        $('.cb_answer').on('change', function() {
             // clear preview div...
             $('#answers_preview').html('');
             // loop - all checked checkboxes...
             $('.cb_answer:checked').each(function() {
                 // add checkbox value to preview div...
                 $('#answers_preview').append(this.val());
             });
        });
    });
</script>