№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.