【发布时间】:2020-01-29 01:32:54
【问题描述】:
我正在尝试使用 ajax 更新数据以防止页面重新加载。这已经从配置文件模型中填充了。尽管这很简单,但我无法通过 ajax 提交此请求。
这段代码给了我以下错误:
从空值创建默认对象
谁能帮我理解我在这里做错了什么?
刀片文件
<form class="form-horizontal" id="editProfile" data-parsley-validate>
@method('PUT')
@csrf
<div class="row">
<div class="col-md" style="padding:0px;">
<input type="hidden" name="usr_id" id="usr_id">
<input type="hidden" name="user_id" id="user_id" value="{{ $profile->user_id }}">
<input type="hidden" name="username" id="username" value="{{ $profile->username }}">
<input type="hidden" name="emp_id" id="emp_id" value="{{ $profile->emp_id }}">
<input type="hidden" name="site" id="site" value="{{ $profile->site }}">
<div class="form-group">
<label for="firstname" class="col-sm-4 control-label">First Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="first_name" value="{{$profile->first_name}}" placeholder="First Name">
</div>
</div>
<div class="form-group">
<label for="lastname" class="col-sm-4 control-label">Last Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="last_name" value="{{$profile->last_name}}" placeholder="Last Name">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" id="submit" value="submit" class="btn btn-danger">Update</button>
</div>
</div>
</div>
</div>
</form>
控制器:
public function update(Request $request, $usr_id)
{
$profile = Profile::find($usr_id);
$profile->first_name = $request->input('first_name');
$profile->last_name = $request->input('last_name');
$profile->update();
}
Ajax 脚本:
<script>
$(document).ready(function() {
// Update Data
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#editProfile').on('submit', function(e){
e.preventDefault();
var usr_id = $('#emp_id').val();
$.ajax({
type: "PUT",
url: "/profile/edit/" + usr_id,
dataType: $('#editProfile').serialize(),
success: function (response) {
console.log(response);
alert("Data Updated");
location.reload();
},
error:function(error){
console.log(error);
}
});
});
});
</script>
路线
Route::put('/profile/edit/{usr_id}', 'ProfileController@update')->name('profile.update');
【问题讨论】:
-
表单中的提交按钮在哪里?\
-
您好非常抱歉。我已经更新了我的问题。
-
你为什么使用 type: 'put' 应该是 type: 'post',put imethod 只适用于 laravel 不适用于 javascript/jquery
-
嗨@danny..我已经尝试过你的建议,但它仍然给我同样的错误。
-
是 php 还是 javascript 错误?
标签: jquery html ajax laravel forms