无法使用php和javascript Ajax发送复选框值

时间:2012-08-07 12:02:16

标签: php javascript

我在我的表单发送的电子邮件中放置我的复选框的值时遇到了一些麻烦,我使用的是使用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; 

});

});

2 个答案:

答案 0 :(得分:0)

您要包含每个复选框的值。您应该测试是否检查它。

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

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

答案 1 :(得分:0)

尝试

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