0

我有一个表单,用户可以在其中上传图像并为它们输入标题,然后提交。为了完成它,我集成了AJAXUPLOADER,它不允许一次上传多个图像,但是一张一张,我没有问题。

成功时,它返回上传的文件名,我做什么,我插入一个包含图像文件名作为值的隐藏字段。我插入一个文本字段供用户输入标题。

基本上,我想要一个包含多个文件名和标题的数组,所以我输入了以下代码:

 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

By declaring indices in your input, that array will automatically be built properly for you, no need to do any fancy array merging.

<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]" />

So on and so forth :) If you're using a PHP loop to declare your inputs, it's as simple as this.

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

I hope this helps make your life easier!

于 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 回答