yii CActiveForm, отправленный AJAX - PullRequest
2 голосов
/ 30 ноября 2011

Я создаю форму, используя следующий код:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'contacts-form',
    'enableAjaxValidation'=>false,

)); ?>

Есть ли способ отправить форму AJAX? Помните, я не говорю о проверке AJAX.

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Один из способов сделать это - использовать встроенный хелпер ajaxSubmitButton , например:

<?php $form=$this->beginWidget('CActiveForm', array(
  'id'=>'contacts-form',
  'enableAjaxValidation'=>false,
)); ?>
<!-- your form elements here -->
<?php echo CHtml::ajaxSubmitButton(Yii::t('app', 'Submit')); ?>
<?php $this->endWidget(); ?>

Это автоматически связывает вызов jQuery AJAX с кнопкой SUbmit, которая POSTЗначения формы для вашего действия от URL.

Конечно, вы также можете написать код AJAX самостоятельно, но в Yii есть и эта вспомогательная функция.

1 голос
/ 08 февраля 2013

Эта вспомогательная функция ajaxSubmitButton не очень полезна, тем более что она использует jquery.ajax () без использования «интерфейса Promise» в jquery 1.5+, поэтому вы должны обработать ответ с помощью обратного вызова success. Это было бы чище, если бы они просто использовали jquery.submit (). Тебе лучше просто честно кататься.

Я разочарован тем, что ни одна из (относительно популярных) интеграций Bootstrap, таких как Yii-Bootstrap или YiiBooster, не предлагает ничего с точки зрения генерации форм, которые также обновляют себя данными ответа ajax (я не говорю о проверке). Я испытываю все трудности в изучении и принятии фреймворка, только чтобы в конечном итоге html / js / css-coding кодировал мою собственную презентацию и логику внешнего интерфейса в любом случае ... О, хорошо.

Я все еще энтузиаст Yii, в основном из-за их генератора gii и поддержки квази-миксин паттернов с «поведением». Это приводит к чистому коду на бэкэнде, но у фреймворка есть кое-что, что нужно сделать для рендеринга внешнего вида и представления. Их библиотека "CHtml" действительно не сокращает это прямо сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...