无法检索从jQuery发布的数据

时间:2013-06-15 16:48:15

标签: php jquery forms post

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

我的问题:Firebug告诉我他们已被发布,但我似乎无法使用$ _POST检索它们。实际上,$ _POST返回旧数据。我尝试取消设置($ _ POST)并删除我的浏览器缓存,没有任何效果。我该怎么办?

非常感谢你的帮助!

submit.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;
    });
});

的index.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>

1 个答案:

答案 0 :(得分: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);
        }):
    });
});