0
[File 
    { size=295816, type="image/jpeg", name="img_new3.JPG"}, 
 File { size=43457, type="image/jpeg", name="nature.jpg"}
]

これは、スクリプトから受け取ったデータであり、ファイルのサイズと名前のみをajax経由でphpファイルに送信する必要があります。
ここに私のコードがあります

            var files = []; 
            files["file"] = [];

            // file is an object that has the above result
            for( var i=0, j=file.length; i<j; i++ ){
                console.log( file[i].name );
                files["file"][i] = file[i].name;
                files["file"][i] = file[i].size;
            }

            // Send Request to Create ZIP File
            console.log(files)

PHP ファイルのパラメーターにアクセスしたい:

file(
    name=>array(
          0=>"name", 
          1=>"size"
    ), 
    size=>array(...)
)

上記のようにデータを PHP ファイルに送信する配列を作成するにはどうすればよいですか?

4

3 に答える 3

1

まず、Objectではなく表記を使用する必要があります。その後、 AjaxArrayを介して PHP 関数に渡すことができます。

var files = {};
files["file"] = [];

// file is an object that has the above result
for (var i = 0, j = file.length; i < j; i++ ){
    console.log(file[i].name);
    files["file"][i] = file[i].name;
}

次に、その配列を使用して、次JSON.stringifyのようにデータを PHP スクリプトに渡します。

$.ajax({
    url: "your url",
    type: "POST", //can be get also, depends on request
    cache: false, //do you want it to be cached or not?
    data: {files: JSON.stringify(files)},
    success: function(data) {
        //do something with returned data
    }
});

とにかく、データの保存方法を変更することをお勧めします。この場合、オブジェクトは非常に便利です。

var files = [];

// file is an object that has the above result
for (var i = 0, j = file.length; i < j; i++ ){
    console.log(file[i].name);
    files.push({
        name: file[i].name //you can add all the keys you want
    });
}
于 2013-06-12T07:48:15.397 に答える
0

多次元配列を JSON でエンコードし、ajax を介して文字列として PHP スクリプトに送信できます。PHP スクリプトは、JSON をデコードして配列/オブジェクトに戻すことができます。

// assuming the array is in files var
$.ajax({
    url : 'page.php',
    type : 'POST',
    data : { myFiles : JSON.stringify(files) },
    success : function(response){
        console.log("successfull");
    }
});

PHP 側:

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $filesArray = json_decode($_POST['myFiles']);
    print_r($filesArray);
}
于 2013-06-12T07:48:48.443 に答える