Php 选中复选框时从窗体外部调用值

Php 选中复选框时从窗体外部调用值,php,javascript,forms,Php,Javascript,Forms,我快拿到了…希望我能把它锁起来 第一部分是表单外的复选框: <div class='span5' style='margin-left:0px !important;'> <label for='model0'> <input type="checkbox" name="model0" id="model0" value="test" style='margin-

我快拿到了…希望我能把它锁起来

第一部分是表单外的复选框:

<div class='span5' style='margin-left:0px !important;'>
                        <label for='model0'>
                            <input type="checkbox" name="model0" id="model0" value="test" style='margin-top:-5px !important;'> test</label>
                    </div>  .
这是表单区域:

<form method="post" class="form-horizontal" id="final_form" action="send_mail.php">
        <input type="hidden" id="model0_is_checked" name="model0_is_checked" value="test" />    MORE FORM STUFF AND SUBMIT BUTTON     </form>

更多表单内容和提交按钮
当我调用model0时,如果选中,我得到的是true,而不是像我试图调用的那样的“test”…有人知道为什么吗?

.is(':checked')
返回true或false以确定复选框是否选中。它不返回值。你可以这样做:

//if checked
if($("#model0").is(':checked')){
    //set the value
    $("#model0_is_checked").val($("#model0").val());
//not checked
} else {
    //set to some other default value
    $("#model0_is_checked").val("not checked");
}
但是,如果只是在表单中包含复选框,则在提交时将获得复选框的值,如果未选中,则不会获得任何值。提交时,在php中,如果选中,
$\u POST['model0']
等于
test
,如果不选中,
$\u POST['model0']
将不会被设置。您可以执行类似以下操作:
$model0=isset($\u POST['model0'])?$\u POST['model0']:null
以无错误地获取值。

您可以在此处执行类似操作(基于您的代码): 我已经重写了javascript部分。现在,每次单击此外部复选框都会更改隐藏的输入(更改为文本类型以查看结果)

$("#model0").on('click', function () {
    if ($(this).is(':checked')) {
        $('#model0_is_checked').attr('value','true'); 
    } else {
        $('#model0_is_checked').attr('value','false'); 
    }
});

这个变量
test
在哪里声明?因此,如果选中了值为test的复选框,我希望选中model0\u,以便在send\u mail.php中给我一个test值,那么隐藏的输入应该读取什么?我有
$("#model0").on('click', function () {
    if ($(this).is(':checked')) {
        $('#model0_is_checked').attr('value','true'); 
    } else {
        $('#model0_is_checked').attr('value','false'); 
    }
});