PHP MAIL CHECKBOX $ POST

时间:2012-03-05 23:24:24

标签: php html ajax forms checkbox

我正在通过AJAX帖子调用运行表单,但我的复选框上的值保持不变,无论我在处理邮件脚本时是否选中或取消选中它。

我想在取消选中时更改值。因此,取消选中该复选框会将值更改为“no”等。

这是我的代码,我做错了什么?

<input type="checkbox" name="newsletter" id="newsletter" checked="checked" value="1"/>

Ajax Call在这里: http://pastebin.com/gFGbWZ1D

Php邮件脚本: http://pastebin.com/d6hCVmzQ

干杯, 麦克

3 个答案:

答案 0 :(得分:1)

$('#newsletter').click(function(){
    if($(this).val() == 1) {
        $(this).val('no');

        // I'd recommend doing it this way for consistency sake
        $(this).val(0);
    }
});

答案 1 :(得分:1)

复选框的值始终为1,无论是否在使用jQuery查看其值时检查它。
您需要做的是查看是否选中了复选框:

var newsletter = $("#newsletter").is(":checked")?1:0;

答案 2 :(得分:1)

您必须检查PHP Mail脚本中复选框的值,并稍微区别对待它。

我的方法是这样做:

if(isset($_POST['newsletter'])&&$_POST['newsletter']==1) $newsletter="yes"; else $newsletter="no";

在这种情况下,您使用PHP来确定值,因为复选框只能有一个值!如果选中它,则该值将是html值的值,但在我的示例中,我们仅使用if语句中的HTML字段的值:

if(isset($ _ POST ['newsletter']))//检查表单提交中是否存在此元素,以及 $ _POST ['newsletter'] == 1 //检查复选框是否已选中。如果您回显$ _POST ['newsletter']的值,它将始终为1,因此您需要调整邮件脚本的逻辑,以便使用“if checked,then yes; else no”类型的样式事情。