我已经为此工作了几个小时,却一无所获。本质上,我的Ajax呼叫似乎运行良好。我正在从视图中提取表单数据。当我查看Chrome Network时,可以看到XHR数据。我的状态为200,然后单击“确定”。但是,无论我做什么,我都无法在控制器中显示任何数据。我已经通过注释掉了我的路线来进行测试,并且确实可以得到一个错误,所以这是肯定的。 XHR数据也显示正确的URL。但是,即使控制器内部只有一个简单的dd($ request)也无法提供任何帮助,甚至也没有空的[]。我尝试了所有选项,并将其谷歌搜索至死。我在做什么错-谢谢!
缩写HTML
Public Animator anim
Public void GenAnim <t>(string "name", t val)
{
If (t is float)
{
anim.setfloat ("name", val)
}
If (t is bool)
{
anim.settrigger("name", val)
}
If (t is int)
{
anim.setint ("name", val)
}
}
AJAX
<form action="" method="POST" id="formData">
<fieldset>
{{ Form::hidden('customer_id',$customer[0]->id,['id'=>'customer_id'])}}
{{ Form::hidden('lastname1',$customer[0]->lastname1,['lastname1'=>'lastname1'])}}
{{ Form::hidden('reference',$quotation[0]->reference,['id'=>'reference'])}}
</fieldset>
</form>
路线
$("#editsubmit").on('click', function () {
event.preventDefault();
var formData =$("#formData").serialize();
var id = $("#reference").val();
$.ajax({
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
type: 'POST',
contentType:'JSON',
processData: false,
url: '/save_edit/'+id,
data: {
"_method": 'POST',
"result": formData,
},
error: function () {
alert('there has been a system level error - please contact support')
}
});
});
控制器
Route::post('/save_edit/{id}','QuotationController@save_quote_edited');
答案 0 :(得分:0)
要处理表格,您不应调用$request->getContent()
,而应调用$request->all()
获取所有参数,应调用$request->get('foo')
或$request->foo
以获取单个参数,或{{ 1}}来获取多个参数。
要获得积分,如果您使用Laravel's Form Request Validation,则可以调用$request->get(['foo','bar','baz')
并仅获取通过验证检查的参数。
答案 1 :(得分:0)
您的路线要求参数“ id”,但您的控制器方法中没有该参数。
Route::post('/save_edit/{id}','QuotationController@save_quote_edited');
尝试:
public function save_quote_edited(Request $request, $id){
*** insert code here ***
}