منبع اصلی نوشتار زیر در این لینک قرار دارد

استفاده از چک باکس به صورت دسته ای

با سلام. در طراحی صفحات وب معمولا برای برخی فیلد های درون فرمها، طراحان نیاز به استفاده از چک باکس دارند تا کاربر  آن ها را تیک بزند، این امر با تگ های ساده HTML به راحتی و با کد زیر قابل اجر است:

<form>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car
</form>

اما برنامه نویسان و توسعه دهندگانی که از فریمورک محبوب Yii بهره می گیرند، در فرمها می توانند از متدی به نام form->checkBoxList$ استفاده کنند. حالا در اینجا نکته مهمی وجود دارد، و آن هم این است که زمانی که برنامه نویس قصد ویرایش اطلاعات فرم را داشته باشد چطور می تواند این چک باکس ها را با مقادیر آنها نمایش دهد؟

برای این موضوع راهی وجود دارد که پس از جستجوی فروان و طولانی پیدا شده است، امیدوارم که برای بقیه عزیزان هم قابل استفاده باشد:

$form = $this->beginWidget('CActiveForm', array(
        'id' => 'form-form',
        'enableAjaxValidation' => false,
            ));

echo $form->labelEx($model, 'zone');
        echo $model->isNewRecord ? $form->checkBoxList($model, 'zone', $model->getZone(), array('style' => 'float: left;margin-right: 5px')) :
                CHtml::checkBoxList("Forms['zone'][]", $model->zone, $model->getZone(), array('style' => 'float: left;margin-right: 5px'));
        echo $form->error($model, 'zone');

$this->endWidget();

همانطور که مشاهده می کنید، در کد بالا ابتدا یک فرم تولید شده و داخل آن لیست چک باکس قرار می گیرد که اگر این فرم برای ایجاد رکورد جدید اطلاعات باشد، چک باکس های خام و اگر برای ویرایش اطلاعات باشد تمامی چک باکس ها به همراه مقادیر قبلی آنها جهت ویرایش نمایش داده می شوند.

The post استفاده از چک باکس به صورت دسته ای appeared first on دست نوشته های یک تازه کار.



برچسب ها : , , , , , , ,