2012-04-13 22 views
0

編集ユーザーフォームにselectタグがあるとします。ユーザーに割り当てることのできる学校のリストが含まれています。経て作成されたCodeigniterフォームの検証とフォームのドロップダウンの問題

<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でこのような問題を解決する最善の方法は何ですか?

私はこれを解決するために考えることができます。$school->idにNULLを戻します。したがって、私はそれをテストしていませんが、それはむしろ優しくないと思われます。私は、フォームがエラーで提出された場合にフォームを再投入したいときにうまくいくとは思わない。

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

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

編集:これは私が使用する実際のコードではないことに注意してください。私はちょうど今これをタイプしました、従って構文エラーまたはそれ以外のものがあれば、私の謝罪。

答えて

3

単にその後、あなたは値が時々空であってもよいこと@で知って、その値が欠落している場合、それはエラーをsupresses echo form_dropdown('school', $school_list, set_value('school', @$school->id));

を使用しています。

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

+0

私はそれについて考えましたが、それは 'set_value()'関数にどうしますか?それは何とかそれを台無しにしないだろうか? – rgin

+0

本当にありません。 '$ _POST ['school']'という値があれば、その値が選ばれます。そうでない場合は、デフォルトのIDまたは_NULL_(最初)を選択します。 –

+0

神様、私はちょうどそれをテストしました。なぜこの質問を書いて10分を過ごす前に私はそれをしなかったのですか?ちょうどあなたが何かをやって過ごしても、あなたはまだいくつかの外見を使うことができます。ありがとう、ロビン。 – rgin

関連する問題