Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ratso
цитировать
Зарегистрирован: 19 Апр 2008 23:10:04 Сообщения: 23
|
Добавлено: 01 Июл 2008 18:17:45 Заголовок сообщения: Ajax Form |
|
|
Как правильно создать формочку, которая при включенном JS произдводит ajax запрос, а если нет - обычный?
В мануале говорится что это просто сделать при помощи $ajax-form.
Конечно можно сделать просто скриптом js, но я хочу воспользоватся хелпером.
Пробую след. образом:
Код: |
echo $ajax->form(array('controller'=>'users', 'action'=>'profile'), 'post', array('update'=>'content', 'indicator'=>'spiner'));
echo $form->input('Name');
...
echo $form->close('Обновить данные');
// Если написать
//echo $ajax->submit('Обновить данные');
//то ни чего не происходит при нажатии кнопки
|
При щелкании по кнопке появляется индикатор на пару сек, а потом идет переход к странице http://mysite/users/profile
что не так? Может нужны еще файлы? Подскажите правильный вариант!
P.S. при щелчке по сабмит должна через аякс загрузится содержание profile.ctp с флеш-сообщением Данные обновлены
Код контроллера:
...
var $components = array(...'RequestHandler'...);
var $helpers = array(...'Ajax','Form'...);
...
Код: | function profile() {
$this->User->id=$this->Auth2->user('id');
if(!empty($this->data)){
if($this->User->save($this->data)){
$this->Session->setFlash('Данные обновлены!');
$this->RequestHandler->setAjax($this);
}
} else { $this->data = $this->User->read();
};
}
|
|
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 05 Июл 2008 21:31:23 Заголовок сообщения: |
|
|
всё правильно тока вот сабмит ты поставил после закрытия формы... |
|
Вернуться к началу |
|
|
Ratso
цитировать
Зарегистрирован: 19 Апр 2008 23:10:04 Сообщения: 23
|
Добавлено: 05 Июл 2008 21:52:38 Заголовок сообщения: |
|
|
DeeperMD
$ajax->submit('Обновить данные') у меня закоментирован. Если его вместо $form->close применять, то ни чего не происходит при нажатии на кнопку. |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 05 Июл 2008 23:24:14 Заголовок сообщения: |
|
|
почему вместо.. разве форма не должна закрываться? |
|
Вернуться к началу |
|
|
Ratso
цитировать
Зарегистрирован: 19 Апр 2008 23:10:04 Сообщения: 23
|
Добавлено: 06 Июл 2008 21:40:24 Заголовок сообщения: |
|
|
Запрос передается, индикатор показывается, данные обновляются, но после выполения форма пропадает вообще, хотя должна появлятся она же с обновленными данными.
Код: |
<?php
e($form->create('User', array('action' => 'profile')));
echo $form->input('username',array('label'=>'Ваш логин:'));
echo $form->input('email',array('label'=>'Ваш E-mail:'));
echo $ajax->submit('Обновить данные', array('url' => array('controller' => 'users', 'action' => 'profile'), 'update'=>'content', 'indicator'=>'spinner'));
echo $form->end();
?>
|
|
|
Вернуться к началу |
|
|
Ratso
цитировать
Зарегистрирован: 19 Апр 2008 23:10:04 Сообщения: 23
|
Добавлено: 06 Июл 2008 21:50:15 Заголовок сообщения: |
|
|
Вроде заработало.
Поменял в контроллере кое-что:
Код: | if($this->User->save($this->data)){
//$this->Session->setFlash('Данные обновлены!');
//$this->redirect(array('controller'=>'users','action' => 'profile'));
//$this->RequestHandler->setAjax($this);
$this->layout='ajax';
$this->render('profile');
} |
|
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 07 Июл 2008 11:23:45 Заголовок сообщения: |
|
|
На будущее если занимаешься Ajax то юзай соответвующие инструменты которые отслеживают запросы на сервер. Например: FireFox 2 + HttpFox Plugin
Мне помогает 100%... |
|
Вернуться к началу |
|
|
Kondrat Гость цитировать
|
Добавлено: 08 Июл 2008 10:59:03 Заголовок сообщения: |
|
|
Я извеняюсь, что не по теме. Щас начал использовать Ajax, и не могу решить, использовать встроенный Ajax pagination с библиотекой Prototype, или использовать Jquery pagination? (с Bakery). |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 08 Июл 2008 11:31:09 Заголовок сообщения: |
|
|
Принципиальной разницы нет.. Единственное что могу сказать, то что cakePHP на 100% поддерживает Prototype на уровне помошников и врядли будет рациональным использование еще одной громоздкой библиотеки..
А в остальном дело вкуса.. |
|
Вернуться к началу |
|
|
levalex
цитировать
Зарегистрирован: 25 Июн 2008 09:33:24 Сообщения: 8
|
Добавлено: 24 Июл 2008 08:18:09 Заголовок сообщения: |
|
|
Кто-нибудь знает, как сделать обновление какого-то дива через определенное время, желательно работающий пример, |
|
Вернуться к началу |
|
|
|