0

そのため、select2Rowを永遠に機能させようとしてきましたが、うまくいかないようです。私がやろうとしているのは、学校/大学の名前をリストするタグをユーザーに提供すると同時に、フォームを保存するときにそのタグの値を保存することです。データとタグの両方を使用できないことに気付きました。そうしないと、ドロップダウンにデータが入力されないため、それはオプションではありません。タグは、テキストと一致する値ではなく、テキストのみを必要とするようです。何か案は?

<div class="row">
    <?php 
        echo $form->select2Row($model, 'school_id', array(
            'asDropDownList'=>false,
            'options'=>array(
                'tags'=>School::model()->schoolNames,
                //'maximumSelectionSize'=>1,
                'width'=>'297px',
                'tokenSeparators'=>array(','),
            ),
        )); 
    ?>
    <?php echo $form->error($model,'school_id'); ?>
</div>

そして、ここにschoolNamesの関数があります

public function getSchoolNames()
{
    $schools = array();
    $result = $this->findAllBySQL("SELECT DISTINCT name FROM School");

    foreach($result as $school){
        $schools[] = $school->name;
    }   
    return $schools;
}

代わりにこれを使用してみましたが、タグが入力されません

public function getSchools()
{
    $query = "SELECT id,name FROM School";
    $results = $this->findAllBySQL($query);

    return CHtml::listData($results, 'id', 'name');
}

現時点では、select2Row は getSchoolNames() を使用してタグのリストを生成しており、これらのタグを使用してフォームを送信すると、次のようになることを除いて、すべて正常に動作します。
Please fix the following input errors: School must be an integer.

すべてのトラブルで申し訳ありませんが、私はまだこれに少し慣れていません。きっと答えは目の前にあるはずです。いずれにせよありがとう=)

4

1 に答える 1

0

これを試して:

echo $form1->select2Row($model, 'school_id', array(
   'data' => School::model()->schoolNames,
   'multiple' => 'multiple',
   'options' => array(
       "width" => '70%',
   ),
));
于 2014-01-15T11:38:55.120 に答える