簡體   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