如何在laravel中使用ajax在单页上存储具有多个按钮数据的多个表单

问题描述 投票:0回答:2
php ajax laravel-5
2个回答
1
投票

谢谢您,但我在没有 {{ csrf_field() }} 的情况下提交数据,因为我停止了中间件。我正在按钮上使用 onclick 事件,因此我的新 ajax 代码在这里并且可以正常工作:-

<script>
    function accessorySetting() {
        var data={'max_accessories':$('input[name="max_accessories"]').val(),
                  'quick_view':$('input[name="quick_view"]:checked').val(),
                  'thumbnail':$('option:selected').val(),
                  'accessory_discription':$('input[name="accessory_discription"]:checked').val(),
                  'quantity_selector':$('input[name="quantity_selector"]:checked').val()
                };

        saveAjaxSetting(data);
    }

    function languageSetting() {
        var data={'addons_heading':$('input[name="addons_heading"]').val(),
                  'quantity':$('input[name="quantity"]').val(),
                  'variant':$('input[name="variant"]').val(),
                  'price':$('input[name="price"]').val()};
        //alert(JSON.stringify(data));
        saveAjaxSetting(data);
    }

    function saveAjaxSetting(data1) {
    //alert(JSON.stringify(data1));
    $.ajax({
    type: 'POST',
    url: "/spiceaddons/public/store",
    dataType: 'json',
    data:data1,
        success: function (data) {
            console.log(data);
            toastr.success("Setting Save Successfully");
        },
        error: function (err) {
            var response = JSON.parse(err.responseText);
            $.each( response.errors, function( key, value) {
                toastr.error(value);
            });

        },

    });
    }
</script>

0
投票

您的代码无法运行的原因可能有多种。

1 - CSRF 代币

您的 API 调用正在使用 POST。假设此路由位于

web.php
路由文件中,这意味着您的表单需要包含 CSRF 令牌。为此,请将以下行添加到每个 HTML 表单(在开始
form
标记之后):

{{ csrf_field() }}

2 - 可填写字段

如果您在模型中使用

$fillable
,则需要确保数组包含您期望的所有字段。如果
$fillable
数组中缺少任何列,数据将不会保存到该列。

protected $fillable = [ 'name', 'value', ... ];

3 - 检查

laravel.log
文件

检查

storage/logs/larave.log
中的错误日志文件,查看代码是否引发任何其他错误或异常。这将为您提供堆栈跟踪,以帮助您确定哪个文件和行可能导致错误。

© www.soinside.com 2019 - 2024. All rights reserved.