Nano Hash - криптовалюты, майнинг, программирование

Как параметры ajax должны быть добавлены в UActiveForm?

Я просмотрел документацию по фреймворку и форумы yii, но ничего не нашел по этому поводу. Я пытаюсь добавить параметры ajax в виджет UActiveForm. Другими словами, я хочу, чтобы загрузочный gif был вставлен в div при нажатии кнопки отправки этой формы ajax. Я знаю, как это сделать в необработанном javascript/jquery/php, но я не могу сделать это с этой структурой. Вот мой начальный код виджета:

<?php $form=$this->beginWidget('UActiveForm', array(
    'id'=>'login-form',
    'enableAjaxValidation'=>true,
    'clientOptions'=>array(
        'validateOnSubmit'=>true,
        'validateOnChange'=>false,
        'validateOnType'=>false,
    ),
    'htmlOptions' => array(
        'enctype'=>'multipart/form-data','class'=>'white-popup-block'),
    ),
)); ?>

<!--form labels/inputs here-->

<?php $this->endWidget(); ?>

Ниже показано, как выглядит часть моего кода ajax, если я делаю это без фреймворка:

request = $.ajax({
    url: "usersystem/login.php",
    type: "POST",
    data: serializedData,
    beforeSend: function() {
        $('#loader').show();
        $('button').off(); //unbind all buttons
    },
    complete: function(){
        $('#loader').hide();
    },
    success: function(data) {
        $('#test').append(data);
    }
});

В частности, я хочу, чтобы перед отправкой и полными вариантами ajax. Я попытался просто добавить

'ajax'=> array(
    'beforeSend'=> 'function() {
        alert("testing, ready");
    }',
    'complete'=> 'function(){
        alert("testing,done");
    }',
),

к параметрам виджета UActiveForm, но это не работает. Я был бы признателен за любую помощь в попытке понять эту структуру.

12.08.2013

Ответы:


1

Я не знаю, что такое UActiveForm, но если предположить, что это что-то вроде CActiveForm, есть варианты beforeValidate и afterValidate, которые вы можете использовать как часть clientOptions:

'clientOptions'=>array(
    'beforeValidate' => new CJavaScriptExpression('function() { ... })'),
    'afterValidate' => new CJavaScriptExpression('function() { ... })'),
    'validateOnSubmit'=>true,
    'validateOnChange'=>false,
    'validateOnType'=>false,
),

Вам нужно заключить код функции в CJavaScriptExpression, потому что в противном случае Yii будет рассматривать его как строку и json_encode.

12.08.2013
  • Спасибо! Это работает, но теперь сообщение ajax не отправляется, как ни странно... У вас есть понимание, почему это так? Если нет, я продолжу отладку... 13.08.2013
  • Ах, неважно. Я понял. Оказывается, анонимная функция javascript должна возвращать true, чтобы форма продолжала работать. В противном случае он ничего не делает и останавливается на своем пути. 13.08.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..