پر کردن داینامیک dropdownlist در YII

[font="Tahoma"]

[right]

[rtl]

سلام

دوستان می خواستم dropdownlist رو بصورت داینامیک پر کنم یعنی فرمی که قراره به کاربر نشون داده بشه بصورت پیش فرض بتونم یه سری مقدارهارو از بانک بخونم و داخلش قرار بدم

همچنین توی صفحه ی ویرایشش اون رکوردی که هنگام ثبت انتخاب شده بود فعال و انتخاب شده باشه

فرض کنید دوتا مدل دارم یکی PostModel و یکی دیگه LevelModel

هنگام نمایش فرمهای مربوط به "پست" میخوام اون dropdownlist از جدول Level پر بشه

جستجو کردم و احساس میکنم کدشو ساختم حتی print_r که میزنم داده های منو، که آورده نشون میده اما نمیتونم ازشون استفاده کنم خطا میده

کدشو ببینید:

[/rtl]

[/right]




<?php

public function actionCreate()

	{

		$level = new LevelModel;

		$model=new PostModel;


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['PostModel']))

		{

			

			$model->attributes=$_POST['PostModel'];

			$model->post_active =1;

			//$model->post_date = ;

			if($model->save())

				$this->redirect(array('view','id'=>$model->post_id));

		}

                $data=LevelModel::model()->findAll();

                $d=array();

                //echo $data->level_name;//print_r($data);

		$this->render('create',array(

			'model'=>$model,

			'data' =>$d,

		));

	}

?>



[rtl]

اگه از دستور


echo $data->level_name;

استفاده کنم خطای زیر رو میده :

[/rtl]

PHP notice

Trying to get property of non-object

[rtl]

اگه توی آرایه بجای $d بیام $data رو بزارم این خطا رو میده :

[/rtl]

Recoverable error

Object of class LevelModel could not be converted to string

[rtl]

ممنون میشم راهنماییم کنید و قلق(درست نوشتم؟) هاشو بگید

[/rtl]

[/font]

[rtl]

میتونی از CHtml::activeDropDownList برای ساخت drop down و از CHtml::listData برای گرفتن اطلاعات از levelmodel استفاده کنی

به عنوان مثال به صورت زیر

[/rtl]





echo CHtml::activeDropDownList($model,'level_id',CHtml::listData($level,'level_id','level_name'));




[rtl]

بهتره برای اینکه به طور کامل متوجه بشی documention yii رو بخونی

[/rtl]