№19 Dars — Yiida ketma ket ma`lumotlar kiritishni qayta ishlash.
Ba`zan bizda ma`lum qoidalar bo`yicha foydalanuvchi tomonidan kiritilayotgan ma`lumotlarni qayta ishlash talab qilinishi mumkin. Tabular input deb, mal`umot kirituvchi bir qancha maydonlarni bir jadvalga qoida bo`yicha joylashga aytiladi. Jadvalli kiritish bilan ishlashimiz uchun birinchi navbatda bizdan ma`lumotlarni qo`shishimiz yoki o`zgartirishimizga qarab modellar ma`lumotlaridan tashkil topgan massiv nusxasini yaratish yoki to`ldirish talab etiladi. So`ng biz $_POST o`zgaruvchisidan ma`lumotlarni olib xar bir modelga o`zlashtiramiz. Bir model uchun ma`lumotlarni kiritishdan farqli o`laroq bu yerda $_POST[‘ModelClass’] o`rniga $_POST[‘ModelClass’][$i] dan foydalanishimiz mumkin.
public function actionBatchUpdate() { $items=$this->getItemsToUpdate(); if(isset($_POST['Item'])) { $valid=true; foreach($items as $i=>$item) { if(isset($_POST['Item'][$i])) $item->attributes=$_POST['Item'][$i]; $valid=$item->validate() && $valid; } if($valid) // barcha elementlar mavjud // …bir qancha ishlar } // jadvalli kirituvchi ma`lumotlar uchun form orqali view da aks ettirish $this->render('batchUpdate',array('items'=>$items)); }
Qachon action tayyor holga kelsa, keraklima`lumotlarni HTML jadvalidagi kirituvchi maydonlarda ko`rish uchun batchUpdate view ini quyidagicha holatda hosil qilishimiz kerak bo`ladi.
$item): ?> Имя Стоимость Количество Описание
Yuqorida biz CHtml::activeTextField metodiga murojaat paytida xaqiqiy parametr bo`lmish «name» o`rniga «[$i]name» dan foydalandik. Agarda tekshiruv paytida xatolik ro`y bersa va bir model bilan ishlangan bo`lsa unda xatolikka mos maydonlar yorqinlashadi.
Manba:
Web Dasturlash
№19 Dars — Yiida ketma ket ma`lumotlar kiritishni qayta ishlash.