PDA

View Full Version : listBox multiple



alirezara
چهارشنبه 05 فروردین 1394, 13:52 عصر
سلام دوستان ! خسته نباشید.:لبخندساده:

دوستان ! کسی توی پروزه هاش از list Box با خاصیت multiple استفاده کرده؟
من توی ویو تونستم یک list box با خاصیت multiple ایجاد کنم اما واقعا نمی دونم چطور باید وقتی اطلاعات را به کنترولر می فرستیم اطلاعات را اعتبارسنجی کنم و ذخیره اش کنم یا آپدیتش کنم!!!:گریه:

از دوستان خواهش می کنم با یک مثال یا لینک به یک منبع بنده راهنمایی کنید.

با تشکر از همه ی دوستان ...:قلب:

MMSHFE
پنج شنبه 06 فروردین 1394, 20:55 عصر
اعتبارسنجی و... بستگی به این داره که شما چطوری توی فیلد مربوط به اون کنترل که multiple هست اطلاعات رو ذخیره میکنید. فرضاً اگه میخواین یکسری عدد باشه که با کاما از هم ذخیره شدن (توی اون فیلد، مقادیر انتخاب شده رو اینطوری ذخیره میکنید)، اونوقت میشه با یک Custom Validator اعتبارسنجی رو انجام داد. برای مثال:

array('ids','myNumbers','allowEmpty'=>true),

public function myNumbers($attribute, $params)
{
if(trim($attribute) === '') {
return (isset($params['allowEmpty']) && $params['allowEmpty']);
}
$values = explode(',', $attribute);
foreach($values as $value) {
if(!is_numeric($value)) {
$this->addError($attribute, 'Only numbers allowed.');
return;
}
}
}

alirezara
پنج شنبه 06 فروردین 1394, 22:25 عصر
با تشکر از استاد شهرکی!
استاد امکانش هست راهنماییم کنید که کنترولر باید چطور باشه؟ مثلا برای CREATE و UPDATE ! یا لینکی برای مطالعه بهم معرفی کنید. من خودم اینترنت رو هرچی گشتم چیزی پیدا نکردم.
با تشکر از استاد شهرکی...

MMSHFE
جمعه 07 فروردین 1394, 09:38 صبح
اونم کار خاصی نمیخواد. مثل روش عادی عمل میکنید. برای مثال:

public function actionCreate()
{
$model = new Posts;
if(isset($_POST['Posts'])) {
$model->attributes = $_POST['Posts'];
if($model->save()) {
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',compact('model'));
}

public function actionUpdate($id)
{
$model = $this->loadModel($id);
if(isset($_POST['Posts'])) {
$model->attributes = $_POST['Posts'];
if($model->save()) {
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',compact('model'));
}

private function loadModel($id)
{
if(!$model = Posts::model()->findByPk($id)) {
throw new CHttpException(404, 'Post not found.');
}
return $model;
}