フォームにドロップダウン フィールドがあり、送信を押すとフォームが検証され、エラーが発生した場合はすべての値が返されます。この作業は私のドロップダウン meu を期待しています。ドロップダウンに set_value がありますが、機能しません :(
これが私のコードです
<?php echo form_dropdown('gender', $gender, set_value('gender')); ?>
私は何が間違っているか、欠けていますか?
フォームにドロップダウン フィールドがあり、送信を押すとフォームが検証され、エラーが発生した場合はすべての値が返されます。この作業は私のドロップダウン meu を期待しています。ドロップダウンに set_value がありますが、機能しません :(
これが私のコードです
<?php echo form_dropdown('gender', $gender, set_value('gender')); ?>
私は何が間違っているか、欠けていますか?
これを行うとうまくいきました:
<?php
$selected = ($this->input->post('gender')) ? $this->input->post('gender') : 'M';
$gender = array("M" => "Male", "F" => "Female");
echo form_dropdown('gender', $gender, $selected);
?>
を削除しますset_value('gender')
のように:
<?php echo form_dropdown('gender', $gender, 'male'); ?>
Trungが言及したように、複数選択の3番目のパラメーターとして配列を渡すことができます。
を使用すると、代わりにform_dropdown
を使用する必要がありますset_select
set_value
デフォルト値をに設定する場合は、デフォルト値form_dropdown
を含む配列を3番目のパラメーターとしてform_dropdown
関数に渡します。
CodeIgniter には がset_checkbox()
ありset_radio()
、代わりに使用する必要がありますset_value()
しかしset_checkbox
、set_radio
いくつかの問題があり、フォームの作成と更新の両方を処理するように設計されたフォームを処理できないようです。
これが修正です。このコードをヘルパーに入れるか、form_validation クラスを拡張できます。
<?php echo form_dropdown('gender', $gender, set_it('gender','M',$person)); ?>
<?php
/* $field is the field you're setting
* $value is the "selected" value from the previous form post
* $defaults is an object containing defaults in case the form is being used to create a new record. It could be filled with null values, or actual default values if you need that.
*/
function set_it($field, $value, $defaults = null)
{
// first, check to see if the form element was POSTed
if (isset($_POST[$field]))
{
// does it match the value we provided?
if ($_POST[$field] == $value)
{
// yes, so set the checkbox
echo "checked='checked'"; // valid for both checkboxes and radio buttons
}
}
// There was no POST, so check to see if the provided defaults contains our field
elseif ( ! is_null($defaults) && isset($defaults->$field))
{
// does it match the value we provided?
if ($defaults->$field == $value)
{
// yes, so set the checkbox
echo "checked='checked'"; // valid for both checkboxes and radio buttons
}
}
}
?>
おそらく、フォームを検証していません。
これを使って:
$this-> form_validation-> set_rules ('gender', 'Label', 'xss_clean');
使用するには:
<? php echo form_dropdown ('gender', $ gender, set_value ('gender'));?>
そうでない場合は、フォーム検証を使用してください。次のようにします。
<? php echo form_dropdown ('gender', $ gender, $ this-> input-> post ('gender'));?>