2

ドロップダウンを使用するフォームがあり、codeigniter、フォームヘルパー、およびフォーム検証を使用しているため、フォームで検証エラーが発生すると、正しく入力されたすべてのフィールドが codeigniter の set_value を使用して入力されますが、これはドロップダウンでは機能しません

私がやっている :

<?php echo form_dropdown('mid', $id_map, set_value('mid'), 'id="mid"') ?>

フォームでエラーが発生すると、常にドロップダウンの最初の値が選択され、以前に設定されていません

アイデアはありますか、何が間違っていますか?

4

5 に答える 5

15

正しい使い方set_select()は、

<select name="myselect">
<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
</select>

したがって、Andras Ratz の方法/回答は機能しません。

あなたの方法は正しいです。

<?php echo form_dropdown('mid', $id_map, set_value('mid'), 'id="mid"') ?>

set_value()ただし、検証ルールを設定している場合にのみ値を返すことを覚えておいてくださいmid。以下のように試すことができます-

<?php echo form_dropdown('mid', $id_map, (isset($_POST['mid']) ? $_POST['mid'] : ''), 'id="mid"') ?>

または単に検証ルールを設定するだけmidです

于 2012-08-16T13:22:21.307 に答える
1

これは、set_value() ではなく set_select() 関数を使用する必要があるためです。

ここで確認できます: http://codeigniter.com/user_guide/helpers/form_helper.html

そして正しい構文:

編集 :

<?php echo form_dropdown('mid', $id_map,  set_select('mid'), 'id="mid"'); ?>

2. デフォルト値がある場合は、set_select のパラメーターに入力する必要があります。

これがうまくいくことを願っています。

于 2012-08-16T12:22:12.767 に答える
0

フォームの選択コンテ​​ンツがこのような foreach ループから選択されている場合はどうなりますか?

<?php foreach ($roles as $role) {
        echo "<option value=" . $role->id . ">" . $role->role_name . "</option>";
                      }
      ?>
于 2016-03-01T19:20:24.660 に答える
-2

実際のドロップダウン フィールドに検証ルールがない場合は、

echo form_dropdown('mid',$id_map);

十分なものです。

于 2017-04-29T01:07:44.567 に答える