繁体   English   中英

使用jQuery发布数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM