0

ユーザーが画像をアップロードし、タイトルを入力して送信するフォームがあります。それを達成するために、私は AJAXUPLOADER を統合します。一度に複数の画像をアップロードすることはできませんが、1 つずつ、問題はありません。

成功すると、アップロードされたファイル名が返されます。私が行うことは、画像ファイル名を値として含む隠しフィールドを挿入することです。そして、ユーザーがタイトルを入力するためのテキスト フィールドを挿入します。

基本的に、複数のファイル名とタイトルを含む配列が必要だったので、次のコードを配置しました。

 input type="text" name="images[][title]" input type="hidden" value="'+response+'" name="images[][url]" 

それは完全に機能しますが、問題があります。配列構造は上記のコードで構築されます。

[images] => Array
    (
        [0] => Array
            (
                [title] => Ferrari
            )

        [1] => Array
            (
                [url] => d2339e1d8da95e811c4344eaef226d09.jpg
            )

        [2] => Array
            (
                [title] => Ferrari
            )

        [3] => Array
            (
                [url] => 714208a8c1b819a548a258c33e311e98.jpg
            )

    )

ただし、次の形式でそれらが必要です。

  [images] => Array
    (
        [0] => Array
            (
                [title] => Ferrari,
                [url] => d2339e1d8da95e811c4344eaef226d09.jpg
            )

        [1] => Array
            (
                [title] => Ferrari,
                [url] => 714208a8c1b819a548a258c33e311e98.jpg
            )

    )

迅速なヘルプをいただければ幸いです。

4

2 に答える 2

3

入力でインデックスを宣言することにより、その配列は自動的に適切に構築され、派手な配列のマージを行う必要はありません。

<input type="text" name="images[0][title]" />
<input type="hidden" value="'+response+'" name="images[0][url]" />

<input type="text" name="images[1][title]" />
<input type="hidden" value="'+response+'" name="images[1][url]" />

などなど :) PHP ループを使用して入力を宣言している場合は、これと同じくらい簡単です。

<? for($i = 0; $i < 2; $i++) { ?>
<input type="text" name="images[<?= $i ?>][title]" />
<input type="hidden" value="'+response+'" name="images[<?= $i ?>][url]" />
< } ?>

これがあなたの人生を楽にするのに役立つことを願っています!

于 2012-05-04T13:00:25.317 に答える
0

名前を付けてtitles[]から、PHPで組み合わせます。

例:

<?php
header("Content-type: text/plain"); //Display only
$urls = array(
    "http://example.com/",
    "http://example.com/images/"
);
$titles = array(
    "Example",
    "Example Images"
);
$images = array();
foreach ($urls as $key => $value) {
    $images[$key]["url"] = $value;
    $images[$key]["title"] = $titles[$key];
}

print_r($images);
于 2012-05-04T12:55:14.660 に答える