1

こんにちは私はcodeigniterを使用しています。私はフォームを持っています、そこで私は動的に隠しフィールドを追加します。したがって、すべての非表示フィールドは<input type='hidden' name='hidden' value="+$(this).attr('title')+"> 、名前が等しいようになります。

問題は、フォームを送信して非表示のフィールド値を取得しようとすると、名前が同じであるため、非表示のフィールド値を1つしか取得できないことです。

フォームの値を印刷します

print_r($this->input->post());

隠しフィールドが2つありますが、1つしかありません

Array
(
    [hidden] => march
    [textbox] => march
    [mysubmit] => Submit
)

作成時に非表示フィールドの名前を動的に変更できますが、非表示フィールドの名前が正確にわかりません。

同じ名前の非表示フィールド値を取得するにはどうすればよいですか?名前以外のフォーム値を取得する方法はありますか?試しましたが答えが見つかりません、助けてください............。

4

1 に答える 1

3

name属性で括弧を使用する必要があります。

<input type='hidden' name='hidden[]'>
<!--                            ^^^^                                   -->

これにより、PHP は値の配列と同じ名前の複数の入力を受け入れることができるため、この場合$_POST['hidden']は文字列の配列を返します。

デフォルトでは、それらは 0 から始まるインデックスが付けられているため$_POST['hidden'][0]、最初のもの$_POST['hidden'][1]を取得し、2 番目のものなどを取得しますが、数字または文字列を使用して、より簡単な場合は明示的にインデックスを付けることができます。

<input type='hidden' name='hidden[first]'>
<input type='hidden' name='hidden[second]'>

または:

<input type='hidden' name='hidden[0]'>
<input type='hidden' name='hidden[1]'>

これらは のように好きなだけ入れ子hidden[first][1][]にすることができ、値を取得するときに PHP 配列と同じように扱われ$_POSTますが、HTML には括弧が必要です。

括弧がないと、最後のフィールドの値のみが$_POST配列で使用可能になります。これは PHP の機能であり、Codeigniter はそれについて何もできません。

于 2011-08-17T11:05:36.857 に答える