[英]POST an Array using Jquery
我正在尝试使用Post jQuery
方法UPLOAD
多个文件,但是在尝试查看数组结果时出现undefined index
的错误。 试图搜索答案,但仍然无法做到。 正确的方法是什么? 以下是我的代码示例,
的HTML
<input type="file" name="others[]" multiple="multiple">
jQuery的
$(document).ready(function(){
$("#submit").click(function(){
var array = [$("input[name='others']").val()],
others = {
"upload[]": array,
},
id = $("input[name='id']").val();
$.post('updated-file-others.php',
{
others : others,
id : id
}, function(data){
$("#result_post").html(data);
});
});
});
的PHP
if(isset($_POST['id'])){
$id = $_POST['id'];
$others = array($_FILES['upload']['name']);
}
echo "<pre>"; print_r($others); echo "</pre>";
几件事
$("input[name='others']")
与您的HTML中的other others[]
不匹配。 您为什么不使用id
并将其匹配? enctype="multipart/form-data"
内有enctype="multipart/form-data"
。 $("input[name='id']").val();
的输出是什么$("input[name='id']").val();
您尚未在代码中提供任何线索。 有关文件上传,请参阅php
文档- 上传多个文件
请参阅此stackoverflow问题- 在php中上传多个文件
我建议将所需的数组格式化为JSON字符串,然后使用php_decode
将其转换为数组。
$json = '["apple","orange","banana","strawberry"]';
$ar = json_decode($json);
echo $ar[0]; // apple
有关使用PHP进行JSON的更多信息,请参见: http : //www.dyn-web.com/tutorials/php-js/json/decode.php
使用$ .post通过ajax上传文件的方式无法正常工作,要实现此目的,您必须按以下方式配置ajax调用:
$.ajax({
type: 'POST',
url: your_url,
data: new FormData($('#form-id').get(0)),
processData: false, //set it to false to send a DOMDocument, or other non-processed data
contentType: false //pass false to tell jQuery to not set any content type header
}).done(function (data) {
alert('success');
})
这会将整个表格发送给服务器,您可以在那里根据需要处理文件和其他字段。
您可以在jQuery ajax文档中了解有关processData和contentType配置的更多信息。
请告诉我们这是否适合您,
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.