当我单击保存按钮并稍后使用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
。
我希望通过控制器方法接收多步骤表单数据,然后将其保存到数据库中。
答案 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();
中