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