Как показать капчу в jquery.dialog

#jquery #yii #capture

#jquery #yii #захват

Вопрос:

Если я хочу показать Captcha в Yii 1.1.14, я пишу что-то вроде :

 <?php if(CCaptcha::checkRequirements()): ?>
    <li>
        <?php echo $form->labelEx($model,'verifyCode'); ?>
        <div>
            <?php $this->widget('CCaptcha'); ?>
            <?php echo $form->textField($model,'verifyCode'); ?>
        </div>
        <?php echo $form->error($model,'verifyCode'); ?>
    </li>
<?php endif; ?>
  

Мой вопрос в том, могу ли я показать подобную капчу на всплывающей странице (для этого я использую jquery.dialog), поскольку в этом у меня нет объекта $ form?
На самом деле я хотел бы использовать класс CCaptcha, но не использовать какую-либо другую библиотеку captcha, так как я хочу иметь похожие captcha в разных частях сайта.

Ответ №1:

  1. Для всплывающего диалога я создал окно с абсолютным расположением, появляющееся с помощью js-скриптинга. Я также центрирую его через js. Это окно легко может быть отправлено с любой формой. Это идеально подходит для страницы login.registration.
  2. Другой вариант заключается в том, что вы МОЖЕТЕ заполнить всплывающее окно формой. Я использую zii.widgets.jui.CJuiDialog (извините, если плохо отформатирован):

    beginWidget(‘zii.widgets.jui.CJuiDialog’,array( ‘id’=>’cart’, // дополнительные опции javascript для диалогового плагина ‘options’=>array( ‘title’=>Yii::t(‘general’,’Добавить ассортимент в корзину’), ‘AutoOpen’=>false, ), ) ); echo Yii::t(‘general’, ‘Введите количество этого ассортимента’); ?>

    beginWidget(‘CActiveForm’, array( ‘id’=>’assortment-form’, ‘enableAjaxValidation’=>false, ‘method’=>’post’, ‘htmlOptions’ => array( // ‘enctype’ => ‘multipart/form-data’, ), ) ); ?> Скрытое поле ($model,’id’); ?> labelEx($model,’amount’); ?> виджет (‘внутренний выбор 2.Выберите 2’, массив ( ‘model’=> $model, ‘attribute’=> ‘amount’, ‘data’ => $data, ‘options’=> array( ‘allowClear’=> true, ‘width’ => ‘100’, ‘placeholder’ => «, //’Минимальная длина ввода’ => 3 ), )); // echo $form-> ошибка($model, ‘amount’); ?> ‘btn btn-средний btn-основной’, ‘style’=> ‘float:right;’)); ?> endWidget(); ?>

    $this-> endWidget(‘zii.widgets.jui.CJuiDialog’); / **************************** конец диалогового окна ********************************* /

Второй вариант я не пробовал с captcha, но вы могли бы это сделать.