№19 Dars — Yiida ketma ket ma`lumotlar kiritishni qayta ishlash.

№19 Dars — Yiida ketma ket ma`lumotlar kiritishni qayta ishlash.

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