使用JQuery进行AJAX POST格式化表单数据并在Laravel(或PHP)中轻松访问?

时间:2018-09-12 20:36:42

标签: php jquery ajax laravel

我需要通过AJAX发送表单数据,以便可以在Laravel中轻松访问它(或使用标准的PHP方法)。它实际上是使用Stripe Checkout的表单,因此我不再自动提交表单,因此可以通过AJAX发送。目前,我有下面的代码,但是怀疑在$ .ajax中引用变量“ formdata”之前的格式不正确。

  1. 我需要怎么做才能正确格式化?

  2. 理想情况下,我想作为常规POST var访问后端的单独表单元素(或者实际上我正在使用Laravel,因此通过Request-> input()方法),

    >

谢谢

$('#booking-form').get(0).submit = function() {
    var formdata = $(this).serializeArray();

$.ajax({
    type: 'POST',
    url: 'book',
    data: { formdata },
    success: function (data)
        {
        // Form submitted and processed correctly, success returned
        },
    error: function (data)
        {
        // console.log('Error:', data.responseText);
        }
    });

后端(Laravel 5.4,但如果需要的话,我可以使用原始PHP):

public function book(Request $request)
    {
    $formfield1 = $request->input('formfield1');
    $formfield2 = $request->input('formfield2');
    [etc.]

    }

1 个答案:

答案 0 :(得分:0)

尝试一下:

$(document).ready( function() {
    $('#booking-form').submit( function( e ) {
        e.preventDefault();
        $.ajax({
            type: 'POST',
            url: 'book',
            data: $('#booking-form').serialize(),
            success: function (data) {
                // Form submitted and processed correctly, success returned
            },
            error: function (data) {
                // console.log('Error:', data.responseText);
            }
        });
    });
});

对Laravel并不十分熟悉,但是肯定可以通过本机PHP(即$_POST['formfield1'])访问表单字段。