0

name のアイテムが複数module_nameあり、それぞれに複数の入力フィールドがあります。下記を参照してください:

<input type="hidden" value="slideshow" name="module_name[]">

<input type="hidden" value="" name="slide_title[]">
<input type="hidden" value="" name="slide_info[]">

<input type="hidden" value="" name="slide_title[]">
<input type="hidden" value="" name="slide_info[]">

投稿時にすべてのデータを取得したいので、これを試しています:

if(isset($_POST['module_name'])){

    foreach ($_POST['module_name'] as $k => $v) {       

        foreach ($_POST['slide_title'] as $key => $value) {

            $slide_title = addslashes($_POST['slide_title'][$key]);
            $slide_info = addslashes($_POST['slide_info'][$key]);

            $arr[] = array(
                    'slide_title' => $slide_title,
                    'slide_info' => $slide_info,

                );

        }

    }

    print_r($arr); //incorrect data

}

各モジュール名のデータを配列で取得したいのですが、上記のコードでは配列に正しいデータが取得されず、繰り返しデータが表示されます。

4

1 に答える 1

0

複数ある場合は、構造を変更する必要があるslide_titleと思います。slide_infomodule_name

<input type="hidden" value="slideshow" name="module_name[1]">

<input type="hidden" value="" name="slide_title[1][]">
<input type="hidden" value="" name="slide_info[1][]">

<input type="hidden" value="" name="slide_title[1][]">
<input type="hidden" value="" name="slide_info[1][]">

...

<input type="hidden" value="slideshow" name="module_name[2]">

<input type="hidden" value="" name="slide_title[2][]">
<input type="hidden" value="" name="slide_info[2][]">

<input type="hidden" value="" name="slide_title[2][]">
<input type="hidden" value="" name="slide_info[2][]">

したがって、この構造を使用すると、次のようにデータをループできます。

$arr = array();
foreach($_POST['module_name'] as $key => $value) {
    $data = array();
    foreach($i = 0; $i < count($_POST['slide_title'][$key]); $i++) {
        $data[] = array(
            "slide_title" => $_POST['slide_title'][$key][$i],
            "slide_info" => $_POST['slide_info'][$key][$i]
        );
    }
    $arr[$value] = $data;
}

結果は次のようになります。

"module_name_1" => array(
    array("slide_title" => "slide_title_1", "slide_info" => $slide_info_1),
    array("slide_title" => "slide_title_2", "slide_info" => $slide_info_2),
    array("slide_title" => "slide_title_3", "slide_info" => $slide_info_3)
),
"module_name_2" => array(
    array("slide_title" => "slide_title_1", "slide_info" => $slide_info_1),
    array("slide_title" => "slide_title_2", "slide_info" => $slide_info_2),
    array("slide_title" => "slide_title_3", "slide_info" => $slide_info_3)
)
...

slide_titleこのループでは、各 に対して同じ量のおよびslide_infoフィールドが必要であることに注意してくださいmodule_name

これが望ましい結果であることを願っています。

于 2013-09-01T20:52:12.900 に答える