Ajax Post - 无法获得Post变量

时间:2016-06-30 03:49:45

标签: php jquery ajax

codeigniter 2.0

form.tpl:

<form class="form-book" id="class-form" method="POST">
  inside full of checkbox....
<button type="button" class="btn" id="submit-btn">Submit</button>
</form>
<script>
$(document).ready(function() {
    $('#submit-btn').click(function(){  
        $('#response').html("<b>Loading response...</b>");
                var serializedData = $form.serialize();
        $.ajax({
            type: 'POST',
            url: 'http://www.example.com/booking/checkbooking', 
            data: serializedData,
        })
        .done(function(data){
            $('#response').html(data);          
        })
        .fail(function() {
            alert( "Posting failed." );

        });
        return false;
    }); 
});
</script>

http://www.example.com/booking/checkbooking

public function checkbooking(){
    print_r($_POST);
}

我无法获得任何后期价值。我有什么想念?

2 个答案:

答案 0 :(得分:1)

如果您使用的jQuery版本大于1.9.0,则应使用method: 'POST'而不是type: 'POST'

如果$_POST为空,则您要么不发布邮件,要么将其清空并在其他地方处理以确保安全。

您还可以检查HTTP标头并确保实际发送POST数据,click here以获取说明

  

type(默认值:'GET')类型:String方法的别名。你应该用   如果您使用的是1.9.0之前的jQuery版本,请键入。

方法的别名。

$.ajax({
    method: 'POST',
    url: 'http://www.example.com/booking/checkbooking', 
    data: $('form#class-form').serialize(),
    beforeSend: function() {
            // stuff to do before ajax request is made
    },
    success: function (data) {
            // same as .done()
    },
    error: function() {
            // same as .fail()
    }
});

答案 1 :(得分:1)

没有像$ form这样的元素,请使用$(&#39; #class-form&#39;)而不是$ form。

<form class="form-book" id="class-form" method="POST">
  inside full of checkbox....
<button type="button" class="btn" id="submit-btn">Submit</button>
</form>
<script>
$(document).ready(function() {
    $('#submit-btn').click(function(){  
        $('#response').html("<b>Loading response...</b>");
                var serializedData = $('#class-form').serialize();
        $.ajax({
            method: 'POST',
            url: 'http://www.example.com/booking/checkbooking', 
            data: serializedData,
        })
        .done(function(data){
            $('#response').html(data);          
        })
        .fail(function() {
            alert( "Posting failed." );

        });
        return false;
    }); 
});
</script>