3

フォームにドロップダウン フィールドがあり、送信を押すとフォームが検証され、エラーが発生した場合はすべての値が返されます。この作業は私のドロップダウン meu を期待しています。ドロップダウンに set_value がありますが、機能しません :(

これが私のコードです

<?php echo form_dropdown('gender', $gender, set_value('gender')); ?>

私は何が間違っているか、欠けていますか?

4

6 に答える 6

4

これを行うとうまくいきました:

<?php
$selected = ($this->input->post('gender')) ? $this->input->post('gender') : 'M';  
$gender = array("M" => "Male", "F" => "Female");
echo form_dropdown('gender', $gender, $selected);
?>
于 2013-01-21T20:12:14.630 に答える
1

を削除しますset_value('gender')

のように:

<?php echo form_dropdown('gender', $gender, 'male'); ?>

Trungが言及したように、複数選択の3番目のパラメーターとして配列を渡すことができます。

于 2013-01-21T20:06:39.347 に答える
0

を使用すると、代わりにform_dropdownを使用する必要がありますset_selectset_value

CodeIgniterのドキュメント

デフォルト値をに設定する場合は、デフォルト値form_dropdownを含む配列を3番目のパラメーターとしてform_dropdown関数に渡します。

于 2013-01-21T19:51:43.210 に答える
0

CodeIgniter には がset_checkbox()ありset_radio()、代わりに使用する必要がありますset_value()

しかしset_checkboxset_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
        }
    }
}
?>
于 2013-10-10T20:42:36.990 に答える
0

おそらく、フォームを検証していません。

これを使って:

$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'));?>
于 2013-10-22T17:59:57.210 に答える