Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 17:02

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Вывод из БД, Ajax
СообщениеДобавлено: 04 июн 2012, 21:51 
Не в сети
Новичок

Зарегистрирован: 02 июн 2012, 17:50
Сообщения: 14
Здравствуйте,
Подскажите пожалуйста следующий момент. Скажем если я удаляю данные из базы, сделал это через AJAX, при нажатии на кнопку изменить - страница не перегрузилась, т.е. всё ок. Но я хочу сделать так, чтобы и обновленные данные вывелись с базы данных сразу же без перегрузки. Помогите пожалуйста такое реализовать

Код:
if(isset($_POST['test']))
      {
         //update statement
         
                        //trying make select
         $results = DB::select(*)->from('v1')->execute();
         foreach($results as $user)
         {
            $select["id"] = $user['id'];
            $select["dbselect"] = $user['username'];
            $select["dbselect2"] = $user['password'];
            
            $this->template->content = View::factory('home', $select); // здесь мне кажется не отрабатывает
         }


Т.е. при нажатии на кнопкц UPDATE, должен выполниться UPDATE и SELECT, но не выходит

Код:
//Display in HTML
<?php echo $id; ?>
<?php echo $dbselect; ?>
<?php echo $dbselect2; ?>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод из БД, Ajax
СообщениеДобавлено: 05 июн 2012, 01:28 
Не в сети
Бывалый

Зарегистрирован: 02 июн 2012, 07:14
Сообщения: 69
Цитата:
$this->template->content = View::factory('home', $select); // здесь мне кажется не отрабатывает

Скорее всего отрабатывает, проблема в другом.
Во первых, эта строка кода находится в цикле, следовательно для каждой строки из базы создаётся новый объект вида, это вам совсем не нужно.
Во вторых, так как это цикл, то в переменной content в результате будут только данные из последнего прохода этого самого цикла, т. е. из последней строки, которая извлечётся из базы.
Что бы с этим разобраться просмотрите уроки, те моменты где написано про вывод статей и комментариев, тут у вас получается практически то же самое. Есть метод as_array(), так что можно обойтись без цикла.
Ну а что касается обновления данных без перезагрузки страницы, то тут понадобится ещё немного javascript.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод из БД, Ajax
СообщениеДобавлено: 05 июн 2012, 01:40 
Не в сети
Новичок

Зарегистрирован: 02 июн 2012, 17:50
Сообщения: 14
Спасибо, буду смотреть уроки. По поводу того, что в цикле, то просто не знал как иначе. Если писать за циклом, то строку $this->template->content = View::factory('home', $select); было бы не видно из-за цикла. Ок посмотрю as_array().
Код:
$('#del').submit(function(e){
      form = this;
      e.preventDefault();
      $.ajax({
         type: 'POST',
         url: this.action,
         data: $(this).serialize(),
         dataType: 'json'
      });
   });

На днях Вы уже отвечали мне по поводу ajax и сказали, что метод serialize() не совсем подходит, т.е. делать в PHP isset(buttonSubmit). Ваш вариант тада помог, но всё же хотелось бы делать isset на кнопку в PHP. Погуглил на эту тему, предлогают вынести кнопку за FORM, но это не помогает. Что можете посоветовать для реализации?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод из БД, Ajax
СообщениеДобавлено: 05 июн 2012, 02:19 
Не в сети
Бывалый

Зарегистрирован: 02 июн 2012, 07:14
Сообщения: 69
Я видимо немного неправильно изъяснился, serialize() очень даже подходит, его удобно использовать, что бы отправлять все поля формы сразу.
Я бы предложил для каждого ajax-запроса сделать в контроллере отдельный экшен, и отправлять форму сразу в него. В таком случае проверять нажатие кнопки нет необходимости, да и в коде потом проще будет разбираться. Ну а сделать isset для обязательных полей формы всё равно надо будет, иначе будут вылазить ошибки при insert-ах, ну или будут пустые записи в таблицу вставляться, в любом случае хорошего мало :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод из БД, Ajax
СообщениеДобавлено: 06 июн 2012, 18:55 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 13 фев 2012, 02:44
Сообщения: 32
А данные удаляются ?
Вам нужно после этого перерисовать страницу с новыми данными методами джиквери. ну чтобы безперезагрузки


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод из БД, Ajax
СообщениеДобавлено: 15 июн 2012, 23:05 
Не в сети
Новичок

Зарегистрирован: 02 июн 2012, 17:50
Сообщения: 14
Спасибо, разобрался, использовал метод load() jQuery


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group