使用 php 和 javascript Ajax 发送复选框值时遇到问题


Trouble sending checkbox values with php and javascript Ajax

我在表单发送的电子邮件中打开复选框的值时遇到了一些麻烦,我正在使用使用 php 和 javascript Ajax 发送电子邮件的 html 表单字段。如果我省略了 Javascript 的代码形式,那么所有值都显示为"是",并且代码显示为"否"。我是 php 的新手,希望得到任何帮助。谢谢。

.HTML

<form method="post" action="test.php" name="contactform" id="contactform">
<input name="extension" type="checkbox" id="extension" value="extension">Extension<br>
<input name="wallmount" type="checkbox" id="wallmount" value="wallmount">Wall Mount<br>
<input name="deskmount" type="checkbox" id="deskmount" value="deskmount">Desk Mount
</form>

.PHP

$extension=($_POST['extension'])?"Extension: Yes":"Extension: No";
$wallmount=($_POST['wallmount'])?"Wallmount: Yes":"Wallmount: No";
$wallmount=($_POST['wallmount'])?"Wallmount: Yes":"Wallmount: No";
$deskmount=($_POST['deskmount'])?"Deskmount: Yes":"Deskmount: No";
$msg.="$extension";;
$msg.="$wallmount";;
$msg.="$deskmount";;

Javascipt

jQuery(document).ready(function(){
$('#contactform').submit(function(){
    var action = $(this).attr('action');
    $('#contactform #submit').attr('disabled','disabled');
    $("#message").slideUp(750,function() {
    $('#message').hide();           
    $.post(action, { 
            extension: $('#extension').serialize(),
        wallmount: $('#wallmount').serialize(),
        deskmount: $('#deskmount').serialize(),
        subject: $('#subject').val(),
        verify: $('#verify').val()
    },
        function(data){
            document.getElementById('message').innerHTML = data;
            $('#message').slideDown('slow');
            $('#contactform #submit').attr('disabled',''); 
            if(data.match('success') != null) $('#contactform').slideUp('slow');
        }
    );
    });
    return false; 
});

});

您包括每个复选框的值。您应该测试以查看是否对其进行检查。

更一般地说,你应该让jQuery从你的表单为你构建数据对象。

$.post(action, $('form').serialize());

尝试

$.post(action, { 
extension: $('#extension').attr('checked'),
wallmount: $('#wallmount').attr('checked'),
deskmount: $('#deskmount').attr('checked'),
},