№9 Dars — Yiida ajax so`rovlari bilan ishlash.

№9 Dars — Yiida ajax so`rovlari bilan ishlash.

№9 Dars - Yiida ajax so`rovlari bilan ishlash.

Ajax so`rovlari bilan ishlash unumli ishlardan biri hisoblanib, web ilovamizni qayta yuklanishsiz serverga so`rov yubora oladigan xususiyatga ega. Yii ham o`zining ajax so`rovlari bilan ishlash uchun maxsus tehnologiyalar ishlab chiqgan. Bu haqida batafsil va samarali usul deb, misollar orqali tushuntirish deb bildik.

Keling birinchi misol bilan tanishaylik. Bu misol hozirgi vaqtni olish misolidir. Buning uchun index.php viewimizga quyidagicha kod yozamiz:

/protected/views/site/index.php

widget('bootstrap.widgets.TbButton',array(
                // buttonning texti bo`lib, uni 'VaqtMessage' messagesidan tarjima qilib olmoqda.
                'label' => Yii::t('VaqtMessage', 'Hozir'),
                'type' => 'primary',
                'size' => 'medium',
                'url'=>array('#'),
                'htmlOptions'=>array(
                    // shu button uchun event biriktirmoqdamiz.
                    'onclick'=>' 
                        vaqtniolish();
                        return false;'
                    ),
                    ));
      ?>

...

/protected/controllers/site.php

public function actionVaqtniOlish() {
  $date = date('Y-m-d H:i:s');
  if(!empty($date))
  {
   echo CJSON::encode( array(
    'status' => 'success',
    'qiymat' => $date,
   ));
  }
  else
  {
   echo CJSON::encode( array(
    'status' => 'exist',
   )); 
  }
  Yii::app()->end();
 }

Endi ko`rib turganingizdek natijalar xech qanday web ilovangiz qayta yuklanmay natija qaytarmoqda. Endi ikkinchi misol bilan tanishamiz. Bu misol qiymatni serverga yuborib natijani olishdan iborat. Buning uchun quyidagicha index.php viewimizga kod kiritamiz:

/protected/views/site/index.php


widget('bootstrap.widgets.TbButton',array(
                'label' => Yii::t('Message', 'Qiymat qaytarish'),
                'type' => 'primary',
                'size' => 'medium',
                'url'=>array('#'),
                'htmlOptions'=>array(
                    'onclick'=>' 
                     var qiymat = $( "input:text[name=text]" ).val();
  // text maydonidagi qiymatni o`zgaruvchiga olish
                        vaqtniolish(qiymat);
                        return false;'
                    ),
                    ));            ?>

...

Kontrollerimizga quyidagicha kod kiritamiz:

/protected/controllers/site.php

public function actionQiymatqaytarish() {
   // kelgan POST metodidagi qiymatni o`zgaruvchiga o`qib olish
   $qiymat = $_POST['qiymat'];
   echo CJSON::encode( array(
    'status' => 'success',
    'value' => $qiymat,
   ));
  Yii::app()->end();
 }

bu kodda kelgan POST metodidagi qiymatni olib uni view saxifamizga qayta berib yubormoqdamiz. Ko`rayotgan bo`lsangiz ikkala misolimizda ham JSON qiymat qaytarmoqdamiz shuning ushun bu qiymatlarni o`qish uchun js kodimizga «dataType»=>»json» deb berib qo`ymoqdamiz. Natija ko`rganingizdek kiritgan yozuvingizni chiqarmoqda.

Albatta ajax tehnologiyasi bilan ishlash yo`llari va turlari ko`p bular haqida keyingi bloglarimizda batafsil yana tanishtirib boramiz.

Ilm olamiga bo`lgan sayohatingiz xayrli bo`lsin.

Manba:

Web Dasturlash
№9 Dars — Yiida ajax so`rovlari bilan ishlash.