Как обновить блок с помощью Ajax ? 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 624
Доброго времени суток!
Я передаю число с помощью аякса в базу. Потом это число вывожу на страницу, но хочу сделать так что бы при каждом нажатие отправки на кнопку это число тоже обновлялось. То есть как то обновить это
Код PHP:
  1. <div id="randommiks"><?php echo $sport_follow_team_info; ?></div>
массив.

Передаю данные вот так.

Код PHP:
  1. $('.button17').click( function() {
  2.  
  3. $.ajax({
  4. type: 'POST',
  5. url: '/sports/decrement',
  6. data: 'user_id=<?php echo $user->id; ?>&team_id=<?php echo $id_page; ?>',
  7. success: function(msg){
  8. $('.buttons17').css('display', 'none');
  9. $('.buttons16').css('display', 'block');
  10.  
  11. $('.buttons18').css('display', 'none');
  12. $('.buttons19').css('display', 'block');
  13. }
  14. });
  15.  
  16. });
Редактировалось: 1 раз (Последний: 3 октября 2017 в 15:22)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1981
После 12 строчки пишете
Код JS:
  1. $('#randommiks').html('<span style="color: red;"'новый текст полученный из обработчика ajax /sports/decrement</span>');
кстати, параметр data на 6 строчке должен быть в формате
{имя_параметра0 : значение_параметра0, имя_параметра1 : значение_параметра1, ... : ...., .... : ...}
Редактировалось: 7 раз (Последний: 3 октября 2017 в 15:38)
NOP
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 624
Странник:

После 12 строчки пишете
Код JS:
  1. $('#randommiks').html('
  2.  

Да такое тоже делал но мне нужно что бы цифра изменялась
Я данные заношу url: '/sports/increment', вот сюда но вывожу уже из главного экшена по id

Вот так

Спойлер
Код PHP:
  1. public function actionIncrement(){
  2.  
  3.  
  4. $user = $this->cms_user;
  5. $param1 = $this->request->get('name');
  6. $param2 = $this->request->get('nickname');
  7. $team_id = $this->request->get('team_id');
  8.  
  9. $follow['user_id'] = $user->id;
  10. $follow['team_id'] = $team_id;
  11. $follow['nickname'] = $param2;
  12. $follow['name'] = $param1;
  13. $team_follow = $this->model->incrementSport($follow);
  14. }
  15.  
  16. public function actionDecrement(){
  17. $user_id = $this->request->get('user_id');
  18. $team_id = $this->request->get('team_id');
  19.  
  20. $this->model->deleteDecrementSport($user_id, $team_id);
  21.  
  22. }
  23.  


Код PHP:
  1. <div class="results"><?php echo $sport_follow_team_info; ?></div>
Редактировалось: 1 раз (Последний: 3 октября 2017 в 15:38)
Посетитель
small user social cms
Медаль
Сообщений: 624
Странник:
кстати, параметр data на 6 строчке должен быть в формате
{имя_параметра0 : значение_параметра0, имя_параметра1 : значение_параметра1, ... : ...., .... : ...}

Проблема в записи нет все супер работает но то что я добавляю приходится обновить страницу что бы увидеть итог цифры так же когда удаляю.

Например было 2 добавил стало 3, но 3 можно увидеть только если обновить страницу.
Редактировалось: 1 раз (Последний: 3 октября 2017 в 15:43)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1981
Нико:
Я данные заношу url: '/sports/increment', вот сюда но вывожу уже из главного экшена по id

у меня подозрение, что вы не знаете, как работает аякс. а работает он так:
1. вы формируете страницу обычным образом.
2. не перезагружая страницы (это же аякс!!!) отправляете данные в приемник, который у вас по адресу /sports/decrement (стати, тоже неправильно, тут у вас должен быть обработчик - файл *.php и имя его должно быть прописано тут
3. обработчик что-то делает. связывается с базой, что-то считает, и отправляет ответ обратно
4. этот ответ принимается строчкой success: function(msg){} и переменная msg этот ответ содержит
5. Вы как-то в js-скрипте этот ответ обрабатываете и вставляете в элемент страницы. то есть заменяете то значение, которое там было, своим.

Ну уж как еще более подробно разжевать, я уже не знаю)))
NOP
Посетитель
small user social cms
Медаль
Сообщений: 624
Странник:

Нико:
Я данные заношу url: '/sports/increment', вот сюда но вывожу уже из главного экшена по id

у меня подозрение, что вы не знаете, как работает аякс. а работает он так:
1. вы формируете страницу обычным образом.
2. не перезагружая страницы (это же аякс!!!) отправляете данные в приемник, который у вас по адресу /sports/decrement (стати, тоже неправильно, тут у вас должен быть обработчик - файл *.php и имя его должно быть прописано тут
3. обработчик что-то делает. связывается с базой, что-то считает, и отправляет ответ обратно
4. этот ответ принимается строчкой success: function(msg){} и переменная msg этот ответ содержит
5. Вы как-то в js-скрипте этот ответ обрабатываете и вставляете в элемент страницы. то есть заменяете то значение, которое там было, своим.

Ну уж как еще более подробно разжевать, я уже не знаю)))

А вот через php не делал, через фронтед добавил.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1981
Нико:
А вот через php не делал
значит, вы не понимаете, как работает аякс
NOP
Посетитель
small user social cms
Медаль
Сообщений: 624
Странник:

Нико:
А вот через php не делал
значит, вы не понимаете, как работает аякс

Если бы понял наверное не создавал бы тему)
Посетитель
small user social cms
Медаль
Сообщений: 653
Странник, про второй пункт вы не правы. Обработчик там верный. Это двойка и в качестве обработчика выступает экшн компонента. Экшн и обрабатывает аякс запрос и дальше по схеме (связывается с базой, модифицирует данные т возвращает ответ)
Посетитель
small user social cms
Медаль
Сообщений: 624
Если писать обычно в php это вот так

Код PHP:
  1. case 'button16':
  2. echo 'Пример 2 - передача завершилась успешно. Параметры: name = ' . $_POST['name'] . ', nickname= ' . $_POST['nickname'];
  3. break;
И вывожу в html, а тут как вывести данные не знаю если честно (

И даже если получилось бы отправить в фронтеда а как id прописать по каторму фильтруешь. sports/team/$id
Редактировалось: 2 раз (Последний: 3 октября 2017 в 15:55)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1981
@SmartControl:
в качестве обработчика выступает экшн компонента
этот экшен имеет расширение php. здесь надо прописать его полное имя и путь от корня сайта.
я никогда этим не гнушаюсь и у меня всегда все работает
NOP
Посетитель
small user social cms
Медаль
Сообщений: 624
Я может как то не так написал, мне нужно вывести не то что передаю, а вывести то что передал после нажатие кнопки из базы.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1981
Можете надо мной глумиться, конечно, но дружище Нико, похоже, живет в какой-то параллельной вселенной. Я ничего не понимаю из того, что он пытается сказать))))
Похоже, он так же не понимает меня))
NOP
Посетитель
small user social cms
Медаль
Сообщений: 624
Странник:

Можете надо мной глумиться, конечно, но дружище Нико, похоже, живет в какой-то параллельной вселенной. Я ничего не понимаю из того, что он пытается сказать))))
Похоже, он так же не понимает меня))

Нет). Спасибо сейчас попробую еще пару вариантов если получится напишу.
Посетитель
small user social cms
Медаль
Сообщений: 653
Странник, вы тоже в параллельной вселенной)) все там правильно с экшеном - не надо php, этот запрос улетит компоненту и обработает движок его как надо. Это InstantCms 2 - там не нужны обращения напрямую к php.
Редактировалось: 1 раз (Последний: 3 октября 2017 в 16:27)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: