【发布时间】:2019-10-23 14:11:02
【问题描述】:
我有一个问题,为什么我在回复中遇到这个错误,我有一个模块,我需要使用 Ajax 和 php 作为后端上传多个模块。
警告:count():参数必须是数组或实现C:\xampp\htdocs\PSMID\Function\mediaAddFunction.php中的Countable的对象 b> 17 行
9
警告:count():参数必须是数组或对象,在C:\xampp\htdocs\PSMID\Function\mediaAddFunction.php中实现Countable上线 17
我会将我已经制作的示例代码分享给你们。
前端:
var storeFile =[];
$('#media_file').on('change',function(e){
var files = e.target.files;
$.each(files, function(i, file) {
storeFile.push(file);
})
})
$('.news_media_button').on('click',function(){
const media_pages = $('#media_pages').val();
const media_title = $('#media_title').val();
//const media_content = $('#media_content').val();
const ck_editor_content = CKEDITOR.instances['media_content'].getData();
const media_link = $('#media_link').val();
const media_file = $('#media_file').prop('files')[0];
const hidden_auth_user = $('#hidden_auth_user').val();
const data = new FormData();
data.append('media_pages',media_pages);
data.append('media_title',media_title);
data.append('media_content',ck_editor_content);
data.append('media_link',media_link);
data.append('files',storeFile[0]);
data.append('hidden_auth_user',hidden_auth_user);
Swal.fire({
title: 'Are you sure to save this data?',
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#008B74',
confirmButtonText: 'Okay'
}).then((result) => {
if (result.value) {
$.ajax({
url:'./Function/mediaAddFunction.php',
data:data,
type:'POST',
dataType:'JSON',
enctype: 'multipart/form-data',
processData: false,
contentType: false,
success:function(response){
console.log(response);
// Swal.fire(
// 'Success!',
// 'Data Saved.',
// 'success'
// )
// if(response.status == 'Success') {
// location.reload();
// }
},
error:function(response) {
console.log(response);
}
});
}
})
});
后端:
for($i=0;$i<count($_FILES["files"]["name"]);$i++)
{
echo $_FILES["files"]["name"][$i];
}
HTML:
<div class="container-fluid">
<div class="jumbotron" style="background-color:white">
<div class="container-fluid">
<input type="hidden" value="" id="hidden_auth_user" name="">
<div class="container">
<div class="row">
<h2 class="col-md-10">News Media</h2>
<button class="btn btn-primary news_media_button col-md-2 form-control" id="custom_button">Save Data</button>
</div>
<hr>
<br><br>
<div class="row">
<div class="col-md-6">
<label style="font-weight: 500; font-size:14px;">Choose Media Page</label>
<select class="form-control" id="media_pages">
<option value="announcement">Announcement</option>
<option value="news_online">News Online</option>
<option value="info_graphics">Info Graphics</option>
</select>
</div>
<div class="col-md-6">
<label style="font-weight: 500; font-size:14px;">Title</label>
<input type="text" name="media_title" id="media_title" placeholder="Title" class="form-control">
</div>
</div>
<br><br>
<div class="row">
<div class="col-md-6">
<label style="font-weight: 500; font-size:14px;">File Upload</label>
<div class="custom-file">
<input type="file" name="files[]" multiple placeholder="Title" id="media_file" value="" class="custom-file-input form-control">
<label class="custom-file-label" for="inputGroupFile04"></label>
</div>
</div>
<div class="col-md-6">
<label style="font-weight: 500; font-size:14px;">File Link</label>
<input type="text" name="" placeholder="Link" id="media_link" value="" class=" form-control">
</div>
</div>
<br><br>
<div class="row">
<div class="col-md-12">
<label style="font-weight: 500; font-size:14px;">Content</label>
<textarea cols="12" name="content_article" class="form-control" id="media_content"></textarea>
<script>
CKEDITOR.replace('content_article');
</script>
</div>
</div>
<br><br>
<div class="row">
<div class="col-md-12">
</div>
</div>
</div>
</div>
</div>
</div>
【问题讨论】:
-
您的代码是 JQuery + PHP...让我知道如何为您实现 html 端...
-
我怀疑你遗漏了一些非常重要的东西
-
你错过了 html 部分......所以 $_FILES 给出了这个警告
-
@Alessandro 缺少什么?
-
错过 HTML 部分