0

編集ユーザーフォームに選択タグがあるとします。これには、ユーザーを割り当てることができる学校のリストが含まれています。

<select 'school'>
    <option value='1'>School 1</option>
    <option value='2'>School 2</option>
</school>

作成者:echo form_dropdown('school', $school_list)

編集中のユーザーにすでに学校が割り当てられている場合は、ドロップダウンをデフォルトに設定します。

だから、私はこれをしました:

$school = $this->db->get_where('schools', $filters) # result object from database
echo form_dropdown('school', $school_list, $school->id);

もちろん、問題は、ユーザーにまだ学校が割り当てられておらず、$school->id空の場合にエラーがスローされることです。

だから私の質問は; codeigniterでこのような問題を解決するための最良の方法は何ですか?

これを解決する方法の1つは、にNULLを返すこと$school->idです。それで、

empty($school->id) && ($school->id = NULL);
echo form_dropdown('school', $school_list, $school->id);

しかし、それはむしろエレガントではないようであり、私はそれをテストしていません。誤って送信された場合に備えて、フォームを再入力したい場合はうまく機能しないと思います。

echo form_dropdown('school', $school_list, set_value('school', $school->id));

誰かがより良い解決策を持っていますか?

編集:これは私が使用する実際のコードではないことに注意してください。今、これを入力したばかりなので、構文エラーなどがある場合は、お詫び申し上げます。

4

1 に答える 1

3

単に使用するecho form_dropdown('school', $school_list, set_value('school', @$school->id));

次に、@その値が空になることがあることを知っており、その値が欠落している場合はエラーを抑制します。

NULLこれを行うと、IDがない場合、3番目のパラメーターに値が送信され、代わりに<option>デフォルトで最初のパラメーターが選択されます。

于 2012-04-13T08:13:35.797 に答える