0

我有一个带有单选按钮和复选框的表单,并且想要检索其中哪些被选中。表单使用 jQuery 提交,信息存储在两个变量(目标和差异)中。然后使用 $.ajax() 发布这些变量。

我的问题:Firebug 告诉我它们已发布,但我似乎仍无法使用 $_POST 检索它们。实际上, $_POST 返回旧数据。我尝试了 unset($_POST) 并删除了我的浏览器缓存,但没有任何效果。我能做些什么?

非常感谢你的帮助!

提交.js:

$(document).ready(function () { 
alert('start');
    $('#right').on('submit', 'form', function(event) {
        var checkboxes = new Array();
        $('input[name=target]:checked').each(function(){
            checkboxes.push($(this).val());
        });
        var radio = $('input[name=diff]:radio:checked').val();
        $.ajax({
            url: 'index.php',
            type: 'post',
            data: {'targets': checkboxes, 'diffs': radio},
            success: function() {
                alert("success"); }
        });
    return false;
    });
});

索引.php:

<!DOCTYPE html>
<html lang="en-US">
<head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script src="js/submit.js"></script>
</head>

<body>

<?php 
if(isset($_POST['targets'])){
    $targets = $_POST['targets'];
    echo "targets set";
}

if(isset($_POST['diffs'])){
    $diffs = $_POST['diffs'];
    echo "diffs set";
}
?>

<div id="right">
    <div class="content">
        <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
            <input type="checkbox" name="target" value="Check1">Check1
            <input type="checkbox" name="target" value="Check2">Check2
            <input type="checkbox" name="target" value="Check3">Check3

            <input type="radio" name="diff" value="Radio1">Radio1
            <input type="radio" name="diff" value="Radio2">Radio2
        </form>
    </div>
</div>

</body>
</html>
4

1 回答 1

0

试试这个:

$(document).ready(function () { 
    $('#right form').on('submit', function(event) {
        event.preventDefault();
        var checkboxes = $.map($('input[name=target]:checked'), function(el,i){
            return el.value;
        });
        var radio = $('input[name=diff]:radio:checked').val();
        $.ajax({
            url: 'index.php',
            type: 'POST',
            data: {targets: checkboxes, diffs: radio}
        }).done(function(data) {
            alert(data);
            $('#content').html(data);
        }):
    });
});
于 2013-06-15T16:58:19.343 回答