首页 > 解决方案 > 如何在通过ajax传递的php控制器中获取数据

问题描述

我的目标是将所有变量数据传递给 php(laravel) 控制器,以便在控制器中对这些变量进行其他操作。在这里,当我按照下面提到的代码执行操作时,我会在控制台中得到响应“hello”作为输出。但是我如何在控制器中输入。

路线(web.php)

Route::get('invoice_data_process', 'App\Http\Controllers\InvoiceController@invoiceDataProcess');

Javascript:

$(function() {
        $("#print_invoice").on("click", function(e) {
            e.preventDefault(); // stop submission
            const arr = $("#rowData [id^=product_id]")
                .map(function() {
                    const $qnty = $(this).closest("tr").find("[id^=product_qnty]")
                    return ({
                        [$(this).attr("id")]: $(this).val(),
                        [$qnty.attr("id")]: $qnty.val()
                    })
                })
                .get();
            var invoiceNo = $('#invoiceNo').val();
            var invoiceDate = $('#invoiceDate').val();
            var clientName = $('#clientName').val();
            var grandTotal = $('#grandtotal').val();
            console.log(arr)


            $.ajax(
                {
                    type: "POST", //HTTP POST Method
                    url: '{{ URL::to('/invoice_data_process') }}', // Controller/View
                    data: { //Passing data
                        'invoiceNo' : invoiceNo,
                        'invoiceDate' : invoiceDate,
                        'clientName' : clientName,
                        'grandTotal' : grandTotal,
                        'arr' : arr
                    },
                    success: function(response) {
                        console.log("hello");

                    },

                });

        });
    });

控制器.php

public function invoiceDataProcess(Request $request)
{
    $invoice_number = $request->get('invoiceNo');
    $invoice_number = $request->get('invoiceDate');
    $client_name = $request->get('ClientName');
    $grand_total = $request->get('grandTotal');
    $arr = $request->get('arr');

    print_r( $invoice_number );
    die;
}

标题

<head>
 <meta name="csrf-token" content="{{ csrf_token() }}">
</head>

输出(http://127.0.0.1:8000/invoice_data_process

空白页

标签: javascriptphpjqueryajaxlaravel

解决方案


推荐阅读