2016-04-02 28 views
0

Yii uygulamamda Yii'nin varsayılan Ajax çalışmıyor. Ayrıca varsayılan Ajax doğrulama çalışmıyor. Bu bir kurulum sorunu veya başka bir sorun oldu mu. Yii'nin varsayılan Ajax'i nasıl etkinleştirilir. Benim denetleyicisi olarak , görünüm sayfasındaYii'nin varsayılan ajax çalışmıyor

public function actionCreate() { 
    $model = new Company; 

    // Uncomment the following line if AJAX validation is needed 
    $this->performAjaxValidation($model); 

    if (isset($_POST['Company'])) { 
     $company = Company::model()->findAll(); 
     if (count($company) === 0) { 
      $model->attributes = $_POST['Company']; 
      $uploadedFile = CUploadedFile::getInstance($model, 'logo'); 
      if (isset($uploadedFile)) { 
       $fileName = date('Ymdhis') . '_' . $uploadedFile->name; // $timestamp + file name 
       $model->logo = $fileName; 
      } 
      if ($model->validate()) { 
       if ($model->save()) { 
        if (isset($uploadedFile)) { 
         $uploadedFile->saveAs(Yii::app()->basePath . '/../banner/' . $fileName); 
        } 
        $this->redirect(array('create')); 
       } 
      } 
     } else { 
      Yii::app()->user->setFlash('error', 'Company details is already exists.'); 
     } 
    } 

    $this->render('create', array(
     'model' => $model, 
    )); 
} 

,

<?php 
       $form = $this->beginWidget('CActiveForm', array(
        'id' => 'company-form', 
        'enableClientValidation' => true, 
        'clientOptions' => array(
         'validateOnChange' => true, 
         'validateOnSubmit' => true, 
        ), 
        // Please note: When you enable ajax validation, make sure the corresponding 
        // controller action is handling ajax validation correctly. 
        // There is a call to performAjaxValidation() commented in generated controller code. 
        // See class documentation of CActiveForm for details on this. 
        'enableAjaxValidation' => true, 
        'htmlOptions' => array('enctype' => 'multipart/form-data'), 
       )); 
       ?> 

<div class="form-group"> 
        <?php echo $form->label($model, 'company_name', array('class' => 'req')); ?> 
        <?php echo $form->textField($model, 'company_name', array('class' => 'form-control')); ?> 
        <?php echo $form->error($model, 'company_name', array('class' => 'school_val_error')); ?> 
       </div> 

bana yardım edin.

Teşekkür ...

cevap

0

Yii hiçbir varsayılan AJAX sahiptir. Bu, JavaScript diline dayanan bir teknolojidir. Varsayılan olarak Yii, AJAX ile kolay kullanım için bazı yöntemler sağlayan bir jQuery kitaplığı içerir. Sen/görünümler/düzenleri/main.php`

+0

By üst içine örneğin, ana düzeni için bu dizeyi ekleyebilir

Yii::app()->clientScript->registerCoreScript('jquery'); 

: sayfanızda kullanmak istiyorsanız, bu dizeyi eklemek gerekir Bu kodu kullanarak, "CClientScript ve davranışları gibi" hata alma, "registerCore" adlı bir yöntem veya kapatma yok. ". – Arya

+0

@Arya Üzgünüz. Ben sadece örneği güncelledim. – SiZE

+0

http://www.yiiframework.com/doc/api/1.1/CClientScript#registerCoreScript-detail – SiZE