如何使用JQuery和bootstrap多步骤表单将数据发布并请求到Laravel中的控制器方法?

时间:2019-03-25 13:37:58

标签: jquery laravel-5 phpmyadmin

当我单击保存按钮并稍后使用Jquery在控制器方法中请求该数据时,我想向控制器方法发送多步骤表单数据。我尝试了一些步骤,但即使按钮似乎也无能为力。

我有这条路线来存储治疗数据。

Route::post('/patients/{patient}/medications','PatientMedicationsController@store')->name('saveTreatment')->middleware('auth');

这些是我要保存其数据的字段的一些ID。

heartRate, bloodPressure, otherFindings, duration

提交按钮的ID为save。 我在刀片视图中有此Jquery代码。

<script>
    $(document).ready( function() {
    $('#save').click( function () {
    $.ajax({
        url:("route('saveTreatment')"),
        type: 'POST',
        data: {'submit': true},
        success: function () {
            alert('Treatment has been saved');
           }
         });
       });
   });
</script>

要存储的控制器方法为store

我希望通过控制器方法接收多步骤表单数据,然后将其保存到数据库中。

1 个答案:

答案 0 :(得分:0)

您需要在ajax调用中以刀片语法指定路由:

{{ route('saveTreatment', $patient->id) }}

因此整个ajax调用看起来像这样:

$(document).ready( function() {
    $('#save').click( function () {
    $.ajax({
        url:("{{ route('saveTreatment', $patient->id) }}"),
        type: 'POST',
        data: {'submit': true},
        success: function () {
            alert('Treatment has been saved');
           }
         });
    });
});

如果您的ajax调用位于单独的文件中,则可以将数据属性添加到诸如data-ajax-url =“ {{route('saveTreatment',$ Patient-> id)}}”的形式。< / p>

然后您的ajax调用将如下所示:

$(document).ready( function() {
    $('#save').click( function () {
    $.ajax({
        url:($('.form-class').attr('data-ajax-url')),
        type: 'POST',
        data: {'submit': true},
        success: function () {
            alert('Treatment has been saved');
           }
         });
    });
});

您也可以简单地将网址写为:

url:("/patients/" + {{ $patient->id }} + "/medications"),

您还需要确保控制器的所有返回值都包装在json_encode();