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');