0

Yii で Ajax リクエストを作成する方法を理解する必要があります。Yii の Web サイトで検索したところ、次の記事が見つかりました。

http://www.yiiframework.com/wiki/24/

コードを書き、ローカルホストでテストしましたか? しかし、何らかの理由で機能しませんでした。

最初の試みでは、単純なことだけをやりたかっただけです。Ajax を使用して、別のアクションの結果を自分のページに出力したいと考えていました。表示したいテキストは「こんにちは」です。

そのアクションの mu コードは次のようになります。

ビュー/インデックス

<?php
/* @var $this CurrentController */

$this->breadcrumbs=array(
        'Current'=>array('/current'),
        'index',
);
?>
<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
        'id'=>'users-index-form',
        'enableAjaxValidation'=>true,
)); ?>
<?php
echo CHtml::dropDownList('country_id','', array(1=>'USA',2=>'France',3=>'Japan'),
array(
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('currentController/dynamiccities'), //url to call.
//Style: CController::createUrl('currentController/methodToCall')
'update'=>'#city_id', //selector to update
//'data'=>'js:javascript statement' 
//leave out the data key to pass all form values through
))); 

//empty since it will be filled by the other dropdown
echo CHtml::dropDownList('city_id','', array());


?>


<?php $this->endWidget(); ?>

</div><!-- form -->

コントローラ

<?php



class CurrentController extends Controller
{



public function accessRules()
    {
        return array(
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions'=>array('create','update','dynamiccities'),
                'users'=>array('@'),
            ),
        );
    }
public $country_id;
    public function actionIndex()
    {
        $this->render('index');
    }




public function actionDynamiccities() /// Called Ajax
{


        echo CHtml::tag('option',
                   array('value'=>'2'),CHtml::encode('Text'),true);

}  



}

残念ながら、私は望ましい結果を得ていません。私が得るものは次のとおりです。

  1. ドロップダウン リストには国の配列が含まれます。
  2. 別のドロップダウンリストが空ですか?!

サンプル コードが機能するように修正するにはどうすればよいですか? 誰かが私が間違っていることを見ることができますか?

4

1 に答える 1

0
echo CHtml::dropDownList('city_id','', array());

ID を次のように使用

echo CHtml::dropDownList('city_id','', array('id'=>'city_id'));
于 2012-11-29T09:23:13.947 に答える