Php 无法更新数据
路线 媒体控制器Php 无法更新数据,php,jquery,ajax,html,laravel-5,Php,Jquery,Ajax,Html,Laravel 5,路线 媒体控制器 Route::resource('/mediafile', 'MediaController'); 看法 {{csrf_field()}} Nama媒体 @如果($edit) @否则 @恩迪夫 @如果($errors->has('MediaName')) {{$errors->first('MediaName')} @恩迪夫 描述 @如果($edit) {{$mediaEdit->Description} @否则 @恩迪夫 @如果($errors->has('Descrip
Route::resource('/mediafile', 'MediaController');
看法
{{csrf_field()}}
Nama媒体
@如果($edit)
@否则
@恩迪夫
@如果($errors->has('MediaName'))
{{$errors->first('MediaName')}
@恩迪夫
描述
@如果($edit)
{{$mediaEdit->Description}
@否则
@恩迪夫
@如果($errors->has('Description'))
{{$errors->first('Description')}
@恩迪夫
甘巴尔
@如果($edit)
MediaPath)}“style=”高度:150px;左边距:10px“>
{{asset('media/'.$mediaEdit->MediaPath)}
@恩迪夫
提交
阿贾克斯
$(“#媒体表单”).submit(函数(){
var formData=新formData(本);
游泳({
标题:“你确定吗?”,
键入:“info”,
showCancelButton:true,
confirmButtonColor:#DD6B55“,
confirmButtonText:“确认!”,
CloseOnConfig:false,
closeOnCancel:错误
},
//作用
功能(isConfirm){
如果(我确认){
$.ajaxSetup({
标题:{
'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content'))
}
});
$.ajax({
类型:“,
url:“”,
数据:formData,
数据类型:“json”,
processData:false,//不处理文件
contentType:false,//将content-type设置为false,因为jQuery将告诉服务器它的查询字符串请求
})
.完成(功能(数据){
if(data.id){
游泳({
标题:“已保存!”,
文本:“您的类别已保存。”,
类型:“success”},函数(){
window.location.href=“”;
});
}否则{
游泳(“再试一次”);
}
控制台日志(数据);
})
.错误(函数(数据){
swal(“已取消”,“请先填写数据”);
console.log('错误:',数据);
});
}否则{
swal(“取消”);
}
//端函数
});
返回false;
});
我将MediaName、Description和UserFile
当我点击提交时,我得到了如下数据
我无法更新数据,当我尝试更新它们时,我的数据没有更改。
我不知道为什么,我认为我的代码没有做错什么。如果你知道答案,请帮助我解决这个问题
$('#media-form').submit(function(){
var formData = new FormData(this);
swal({
title: 'Are you sure?',
type: 'info',
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Confirm!",
closeOnConfirm: false,
closeOnCancel: false
},
//function
function(isConfirm){
if(isConfirm){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: "<?php echo $actionMethod; ?>",
url: "<?php echo $actionURL; ?>",
data: formData,
dataType: 'json',
processData: false, // Don't process the files
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
})
.done(function(data){
if(data.id){
swal({
title: "Saved!",
text: "Your Category has been saved.",
type: "success"}, function(){
window.location.href = "<?php echo url('mediafile'); ?>";
});
}else{
swal("Try again");
}
console.log(data);
})
.error(function(data){
swal("Cancelled", "Please fill the data first.");
console.log('Error:', data);
});
} else{
swal("Cancelled");
}
//end function
});
return false;
});
函数submitFormItemGroup(){
var form_data=new FormData(document.getElementById(“itemGroup”);
表格_数据。附加(“标签”、“网络上传”);
$.ajax({
url:{{url::to('editItem',$items[0]->id)}},
类型:“POST”,
数据:表格数据,
processData:false,//告诉jQuery不要处理数据
contentType:false//告诉jQuery不要设置contentType
}).
函数submitFormItemGroup(){
var form_data=new FormData(document.getElementById(“itemGroup”);
表格_数据。附加(“标签”、“网络上传”);
$.ajax({
url:{{url::to('editItem',$items[0]->id)}},
类型:“POST”,
数据:表格数据,
processData:false,//告诉jQuery不要处理数据
contentType:false//告诉jQuery不要设置contentType
}).
将PUT路由更改为POST路由
<form name="itemGroupForm" action="{{URL::to('editItem',$items[0]->id)}}" id="itemGroup" data-parsley-validate="" method="post" onsubmit="return submitFormItemGroup();">
function submitFormItemGroup() {
var form_data = new FormData(document.getElementById("itemGroup"));
form_data.append("label", "WEBUPLOAD");
$.ajax({
url: "{{URL::to('editItem',$items[0]->id)}}}",
type: "POST",
data: form_data,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).
因为表单数据只能在方法POST中使用,所以如果要更新图片,必须使用POST方法。将PUT路径更改为POST路径
<form name="itemGroupForm" action="{{URL::to('editItem',$items[0]->id)}}" id="itemGroup" data-parsley-validate="" method="post" onsubmit="return submitFormItemGroup();">
function submitFormItemGroup() {
var form_data = new FormData(document.getElementById("itemGroup"));
form_data.append("label", "WEBUPLOAD");
$.ajax({
url: "{{URL::to('editItem',$items[0]->id)}}}",
type: "POST",
data: form_data,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).
因为表单数据只能在方法POST中使用,所以如果您想更新图片,您必须使用POST方法。我已经尝试过,但不起作用。.我在StackOverFlow中读了很多问题,他们说表单数据只能在方法POST中使用,不能在方法PUT中使用。您有什么想法吗?我已经尝试过,但没有我在StackOverFlow中读了很多问题,他们说表单数据只能用在POST方法中,不能用在PUT方法中。你有什么想法吗?
<form name="itemGroupForm" action="{{URL::to('editItem',$items[0]->id)}}" id="itemGroup" data-parsley-validate="" method="post" onsubmit="return submitFormItemGroup();">
function submitFormItemGroup() {
var form_data = new FormData(document.getElementById("itemGroup"));
form_data.append("label", "WEBUPLOAD");
$.ajax({
url: "{{URL::to('editItem',$items[0]->id)}}}",
type: "POST",
data: form_data,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).
Route::resource('/mediafile', 'MediaController', ['except' => ['update']]);
Route::post('/mediafile/{id}', 'MediaController@update');