jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение aalexeev81 »

Есть форма, в которой есть вызов модульной формы "Добавление нового бренда".

форма _form

Код: Выделить всё

...
<?php
// the link that may open the dialog
echo CHtml::link('Добавить новый бренд', '#', array(
   'onclick'=>'$("#myDialog").dialog("open"); return false;',
));


$this->beginWidget('application.extensions.jui.EDialog',
   array(
      'name' => 'myDialog',
      'theme' => 'base',
      'htmlOptions'=>array('title'=>'Добавление нового бренда'),
      'options' => array(
         'autoOpen'=>false,
         'show'=>'scale',
      ),
      'buttons' => array(
         "Ok" => 'function(){$(this).dialog("close");}',
         "Cancel" => 'function(){alert("cancel");}'
      ) 
   )
);
echo $this->renderPartial('test');

$this->endWidget('application.extensions.jui.EDialog');
?>
...
Код файла test

Код: Выделить всё

<?php echo CHtml::form(); ?>

<?php echo CHtml::textField('name'); ?>

<?php 
echo CHtml::ajaxSubmitButton('Echo', array('echo'), array(
    'type' => 'POST',
    'update'=>'#result',
)
);
 ?>

<?php echo CHtml::endForm(); ?>

<div id="result">
Кусок файла контролера:

Код: Выделить всё

...
    public function actionEcho()
    {
        if(Yii::app()->request->isAjaxRequest)
        {
            if(isset($_POST['name']))
                echo "You entered: ".CHtml::encode($_POST['name']);
        }
    }
...
 
Модульная форма открывается - работает.
При нажатии Echo не происходит никаких действий - не работает

У кого какие есть соображения, почему не работает?

Заранее спасибо

PS это своего рода продолжение моего сообщения: viewtopic.php?f=3&t=431
Аватара пользователя
xoma
Сообщения: 641
Зарегистрирован: 2009.04.02, 15:24
Откуда: Ногинск
Контактная информация:

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение xoma »

Я тоже использовал расширение jui - но периодически появлялись баги в IE (javascript-овые ошибки)...Отказался от jui - использую стандартный Jquery Ui - проблем нет.
kot
Сообщения: 4
Зарегистрирован: 2009.07.24, 17:10

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение kot »

А куда по вашему echo выведет строку? сделайте логирование, идет запрос или нет
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение aalexeev81 »

xoma писал(а):Я тоже использовал расширение jui - но периодически появлялись баги в IE (javascript-овые ошибки)...Отказался от jui - использую стандартный Jquery Ui - проблем нет.
Можете привести модульной формы с пост отправкой на Jquery, или ссылку на пообный с использованием Yii.
Заранее благодарю
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение aalexeev81 »

kot писал(а):А куда по вашему echo выведет строку? сделайте логирование, идет запрос или нет
Запрос идет, должен вывести в модульную форму в id=example...
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение slavcodev »

Ну запрос идет и ответ скорее всего возвращается, только у вас нигде не обрабатывается ответ от AJAX - запроса

Код: Выделить всё

<?php 
echo CHtml::ajaxSubmitButton('Echo', array('echo'), array(
    'type' => 'POST',
    'update'=>'#result',
)
);
третий параметр ajaxOption
Жду Yii 3!
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение aalexeev81 »

mc-bear писал(а):Ну запрос идет и ответ скорее всего возвращается, только у вас нигде не обрабатывается ответ от AJAX - запроса

Код: Выделить всё

<?php 
echo CHtml::ajaxSubmitButton('Echo', array('echo'), array(
    'type' => 'POST',
    'update'=>'#result',
)
);
третий параметр ajaxOption

Смотрите мой первый пост, 3й кусок кода ("Кусок файла контролера:"), обрабатывает его контролер

PS возможно я не понял вашего вопроса/утверждения, поправьте меня если это так
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение slavcodev »

Экшн контроллера возвращает ответ, но на странице вы должны его обработать.
мне негде пробовать, поэтому напишу мысль,

Код: Выделить всё

<?php 
echo CHtml::ajaxSubmitButton('Echo', array('echo'), array(
    'type' => 'POST',
    'update'=>'#result', // это я незнаю для чего вам, у ажакса нет такого свойтсва. Откуда вы его взяли?
    // вот так оббрабатываем ответ от ajax
    'error' => 'function (XMLHttpRequest, textStatus, errorThrown) {alert(txtStatus);}',
    'success' => 'function (data, textStatus) {alert(data);}',
)
); 
Жду Yii 3!
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение aalexeev81 »

mc-bear писал(а):Экшн контроллера возвращает ответ, но на странице вы должны его обработать.
мне негде пробовать, поэтому напишу мысль,

Код: Выделить всё

<?php 
echo CHtml::ajaxSubmitButton('Echo', array('echo'), array(
    'type' => 'POST',
    'update'=>'#result', // это я незнаю для чего вам, у ажакса нет такого свойтсва. Откуда вы его взяли?
    // вот так оббрабатываем ответ от ajax
    'error' => 'function (XMLHttpRequest, textStatus, errorThrown) {alert(txtStatus);}',
    'success' => 'function (data, textStatus) {alert(data);}',
)
); 
Спасибо, сейчас попробую, через часик о результате отпишусь!
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение aalexeev81 »

mc-bear писал(а):     'update'=>'#result', // это я незнаю для чего вам, у ажакса нет такого свойтсва. Откуда вы его взяли?
Вот отсюда взял: http://yiiframework.ru/doc/cookbook/ru/js.ajax
aalexeev81
Сообщения: 18
Зарегистрирован: 2009.11.23, 14:13

Re: jui.eDialog (или CJuiDialog для v 1.1) + ajax form

Сообщение aalexeev81 »

Решено, проблема в том что у меня виджет (модульная форма) была внутри формы, поэтому ничего не работало, вынес за пределы формы и все решилось...

Спасибо всем,
особенно mc-bear поля error, success сделали для меня более прозрачным весь процесс по сравнению с update.
Ответить