CJuiAutoComplete ウィジェットを実装しようとしていますが、結果を表示できません。ここに私のコードがあります:
HighSchoolsController.php
public function actionSearchHighSchools() {
$criteria=new CDbCriteria;
$model = new HighSchools;
$criteria->compare('SchoolName',$model->SchoolName,true);
$criteria->compare('City',$model->City,true);
$criteria->compare('State',$model->State,true);
$dataProvider = new CActiveDataProvider($model, array('criteria'=>$criteria));
$highSchools = $dataProvider->getData();
$return_arr = array();
foreach($highSchools as $highSchool){
$return_arr[] = array(
'value' => $highSchool->SchoolName,
'label' => $highSchool->SchoolName,
'id' => $highSchool->id,
);
}
return CJSON::encode($return_arr);
}
_buildEducation.php (view file)
<?php
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'name'=>'highschool',
'sourceUrl'=>$this->createUrl('highSchools/searchHighSchools'),
'options'=>array(
'minLength'=>'2',
)
));
?>
今、コントローラー関数でCJSON::encode($return_arr)
、返す代わりに変数をダンプすると、次の出力が得られます。
string(688) "[{"value":"ALBERT P BREWER HIGH SCH","label":"ALBERT P BREWER HIGH SCH","id":"1"},{"value":"ALBERTVILLE HIGH SCH","label":"ALBERTVILLE HIGH SCH","id":"2"},{"value":"ALICEVILLE HIGH SCH","label":"ALICEVILLE HIGH SCH","id":"3"},{"value":"ALMA BRYANT HIGH SCH","label":"ALMA BRYANT HIGH SCH","id":"4"},{"value":"ANDALUSIA HIGH SCH","label":"ANDALUSIA HIGH SCH","id":"5"},{"value":"ANNISTON HIGH SCH","label":"ANNISTON HIGH SCH","id":"6"},{"value":"ARAB HIGH SCH","label":"ARAB HIGH SCH","id":"7"},{"value":"ASHVILLE HIGH SCH","label":"ASHVILLE HIGH SCH","id":"8"},{"value":"ATHENS HIGH SCH","label":"ATHENS HIGH SCH","id":"9"},{"value":"AUBURN HIGH SCH","label":"AUBURN HIGH SCH","id":"10"}]"
ウィジェットに正しいデータが送信されていることはわかっています。タイトルで述べたように、ネットワーク リクエストはステータス 200 で正常に返されますが、何らかの理由で結果が表示されません。誰かが私が間違っていることを見ることができますか? 私は Yii のドキュメントとフォーラムからコードを引っ張ってきて、自分のニーズに合わせて調整しましたが、コードは本質的に、それが機能すると言った人々と同じです