0

友達、

いくつかのアイテムを含む登録フォームがありますが、これらのアイテムのドロップダウン リストがフォームの送信で選択されていないようです。

景色:

 </div>
    <div class="row">
        <?php echo CHtml::activeLabel($model, 'Gjinia'); ?>
        <?php echo CHtml::dropDownList('sex', 0, $data = array(0 => 'Mashkull', 1 => 'Femer'))
        ?>
    </div>

    <div class="row">
        <?php echo CHtml::activeLabel($model, 'Arsimimi'); ?>
        <?php echo CHtml::dropDownList('education', 0, $data = array(0 => 'Ulet', 1 => 'Mesem', 2 => 'Larte')) ?>
    </div>

    <div class="row">
        <?php echo CHtml::activeLabel($model, 'Statusi Martesor'); ?>
        <?php echo CHtml::dropDownList('marital_status', 0, $data = array(0 => 'Beqar/e', 1 => 'I/E divorcuar', 2 => 'I/E martuar', 3 => 'I/E veje')) ?>
    </div>

検証規則:

public function rules() {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('name, lastname, sex, education, 
                marital_status, employment, 
                dob, municipality, address, 
                cell_no, email, initialPassword, 
                repeatPassword', 'required'),
            array('sex, employment, municipality,', 'numerical', 'integerOnly' => true),
            array('email, initialPassword, repeatPassword, name, lastname', 'length', 'max' => 100),
            array('initialPassword, repeatPassword', 'required', 'on' => 'insert'),
            array('initialPassword, repeatPassword', 'length', 'min' => 6, 'max' => 40),
            array('initialPassword', 'compare', 'compareAttribute' => 'repeatPassword'),
        );
    }

フォームを送信した後、$_POST['Auser'] で print_r を実行すると、次のようになります。

Array ( [name] => Name [lastname] => Lname [address] => B ellit 
[cell_no] => 044 568 178 [email] => gzzi@gmail.com [id] => [sex] => 
[education] => [marital_status] => [employment] => [industry] => [dob] => 
[municipality] => [password] => )

およびエラーメッセージ:

Sex cannot be blank. 
Education cannot be blank.  
Marital Status cannot be blank. 
Employment cannot be blank. 
Dob cannot be blank.
Municipality cannot be blank.
4

1 に答える 1

2

ドロップダウンリストは次のように定義する必要があります。

 <div class="row">
    <?php echo CHtml::activeLabel($model, 'Statusi Martesor'); ?>
    <?php echo CHtml::activeDropDownList($model, 'marital_status', array(0 => 'Beqar/e', 1 => 'I/E divorcuar', 2 => 'I/E martuar', 3 => 'I/E veje')) ?>
</div>

それ以外の:

<div class="row">
    <?php echo CHtml::activeLabel($model, 'Statusi Martesor'); ?>
    <?php echo CHtml::dropDownList('marital_status', 0, $data = array(0 => 'Beqar/e', 1 => 'I/E divorcuar', 2 => 'I/E martuar', 3 => 'I/E veje')) ?>
</div>

最初のインスタンス (私が使用した場所) では、このようCHtml::activeDropDownList($model, 'attribute_name')にした後にドロップダウン属性にアクセスできます。これは、POST 配列が次のようになるためです。$model->attributes = $_POST['ModelName'];$model->sex$model->marital_status$_POST['ModelName']['sex']$_POST['ModelName']['marital_status']

を使用する場合CHtml::dropDownList('field_name', 'selected_value', array('option1', 'option2'))、POST 配列はフォーム$_POST['field_name']であり、ActiveRecord の場合、必要なものは$_POST['ModelName']['field_name']

それがあなたの質問を解決することを願っています。

于 2013-07-24T15:24:21.337 に答える