Сообщение формы jquery ajax в Laravel 4Bt

Я отправляю сообщение Ajax на свой сервер laravel. Я сериализую форму и отправляю ее, но я не уверен, как я могу использовать правильный формат в моем бэкэнде laravel (php):

Мой Ajax:

submitPdf: function () {
    $('form').submit(function (e) {

        if ($("#pdfPreviewCheckbox").is(':checked')) {
            e.preventDefault();
        } else {
            return true;
        }

        var $form = $(this);

        var $inputs = $form.find("input, select, button, textarea");

        var serializedData = $form.serialize();

        $inputs.prop("disabled", true);

        $.ajax({
            type: "post",
            url: "/test/public/labelspecial/new/input",
            data: {
                "product": serializedData
            },
            success: function () {
                console.info("success");
            },
            error: function (e) {
                console.info("an error occured " + e);
            }
        });
    });
}

если я var_dump(Input::all());, я получаю такой вывод:

array(5) {
  ["product"]=>
  array(3) {
    [0]=>
    array(11) {
      ["label"]=>
      string(3) "asd"
      ["model"]=>
      string(0) ""
    }
    [1]=>
    array(11) {
      ["label"]=>
      string(0) ""
      ["model"]=>
      string(0) ""
    }
    [2]=>
    array(11) {
      ["label"]=>
      string(0) ""
      ["model"]=>
      string(0) ""
    }
  }
  ["printPDF"]=>
  string(6) "Senden"
  ["variant"]=>
  string(1) "2"
  ["count"]=>
  string(1) "3"
  ["_token"]=>
  string(40) "T7aAxjnfAyAcGs5PAW75RBbEFjfYpt4eCgO7iT1j"
}

И если я отправил сериализованные данные через Ajax, я получаю следующий результат:

array(1) {
  ["product"]=>
  string(1135) "product%5B0%5D%5Blabel%5D=&product%5B0%5D%5Bmodel%5D=&product%5B0%5D%5B...
}

Результат должен быть таким же, как я могу этого добиться?

Править Я пробовал использовать $form.serializedArray() вместо $form.serialize(), результат получился лучше, но это еще не правильно. Если я использую dd в php, я получаю это сейчас:

array(1) {
  ["product"]=>
  string(1626) "[{"name":"product[0][label]","value":""}]"
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
28
1

Ответы 1

Используйте объект-форму для получения всех входных данных в форме.

$('form').submit(function (e) {

        if ($("#pdfPreviewCheckbox").is(':checked')) {
            e.preventDefault();
        } else {
            return true;
        }

            var form = $( this );

            // you can't pass Jquery form it has to be javascript form object
            var formData = new FormData(form[0]);

  $.ajax({
            type: "post",
            url: "someURl",
            data: {
                 formData 
            },
            success: function () {
                console.info("success");
            },
            error: function (e) {
                console.info("an error occured " + e);
            }
        });
    });

Контроллер Laravel:

public function methodName(Request $request){
return $request->all();
}

Если вы хотите получить доступ только к указанному вводу, вы можете использовать, как показано ниже

return $request->inputName;

Маршрут :

Route::post("/someURl", ControllerName@methodName);

Другие вопросы по теме