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

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#16 3 октября 2017 в 16:28
@SmartControl, Да прямо по любому не получится тогда придется отдельный код для подключения к бд

Странник, Странник, а можно ли как то тут пхп код выводить ?

  1. $('.results').html('<span style="color: red;">новый текст полученный из обработчика ajax /sports/decrement</span>');
Вот так например

  1. $('.results').html('<span style="color: red;">новый текст полученный '<?php echo $id_page; ?>'из обработчика ajax /sports/decrement</span>');
#17 3 октября 2017 в 17:01
Нико, данный код во все элементы DOM на странице с классом class="results" вставит спан с красным текстом: "новый текст полученный что-то там из обработчика ajax /sports/decrement"
я этот код привел просто для примера. вы сюда должны вставить свой код. который который должен выполнять то, что вы задумали. как мы уже установили, я из своей вселенной прочитать ваши мысли из вашей вселенной не мог))))
#18 3 октября 2017 в 17:04


Нико, данный код во все элементы DOM на странице с классом class="results" вставит спан с красным текстом: "новый текст полученный что-то там из обработчика ajax /sports/decrement"
я этот код привел просто для примера. вы сюда должны вставить свой код. который который должен выполнять то, что вы задумали. как мы уже установили, я из своей вселенной прочитать ваши мысли из вашей вселенной не мог))))

Странник

smile
#19 3 октября 2017 в 17:07
Нико, ваши экшены Increment и Decrement что возвращают обратно? Ничего, поэтому ничего не выведется.
Вам нужно вернуть нужную цифру и тогда её можно будет подставить как вам подсказал Странник.
#20 3 октября 2017 в 17:13


Нико, ваши экшены Increment и Decrement что возвращают обратно? Ничего, поэтому ничего не выведется.
Вам нужно вернуть нужную цифру и тогда её можно будет подставить как вам подсказал Странник.

Loadырь

Да я понимаю это, просто как мне передать его оттуда в шаблон /sports/team/$id ?

Вот я делаю

  1. $('.button17').click( function() {
  2.  
  3. $.ajax({
  4. type: 'POST',
  5. url: '/sports/increment',
  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. //$('.results').html('<?php echo $sport_follow_team_info; ?>');
  14. $('.results').html(msg);
  15. }
  16. });
  17.  
  18. });
  1. public function actionIncrement(){
  2. $user = $this->cms_user;
  3. $param1 = $this->request->get('name');
  4. $param2 = $this->request->get('nickname');
  5. $team_id = $this->request->get('team_id');
  6.  
  7. $follow['user_id'] = $user->id;
  8. $follow['team_id'] = $team_id;
  9. $follow['nickname'] = $param2;
  10. $follow['name'] = $param1;
  11. $team_follow = $this->model->incrementSport($follow);
  12. echo 'Пример 2 - передача завершилась успешно. Параметры: name = ' . $team_id['team_id'];
  13. break;
  14.  
  15. }
#21 3 октября 2017 в 17:17
Нико, что у вас хранится в $sport_follow_team_info?
#22 3 октября 2017 в 17:18


Нико, что у вас хранится в $sport_follow_team_info ?

Loadырь

То что я отправляю при нажатие кнопки в actionIncrement

  1. $user = $this->cms_user;
  2. $param1 = $this->request->get('name');
  3. $param2 = $this->request->get('nickname');
  4. $team_id = $this->request->get('team_id');
  5.  
  6. $follow['user_id'] = $user->id;
  7. $follow['team_id'] = $team_id;
  8. $follow['nickname'] = $param2;
  9. $follow['name'] = $param1;
  10. $team_follow = $this->model->incrementSport($follow);
#23 3 октября 2017 в 17:19

просто как мне передать его оттуда

Нико
Как-то так
#24 3 октября 2017 в 17:21

То что я отправляю при нажатие кнопки в actionIncrement

Нико
То есть у вас в одной переменной $sport_follow_team_info хранится набор переменных?

$user = $this->cms_user;
$param1 = $this->request->get('name');
$param2 = $this->request->get('nickname');
$team_id = $this->request->get('team_id');

$follow['user_id'] = $user->id;
$follow['team_id'] = $team_id;
$follow['nickname'] = $param2;
$follow['name'] = $param1;
$team_follow = $this->model->incrementSport($follow);

Нико
#25 3 октября 2017 в 17:22


То что я отправляю при нажатие кнопки в actionIncrement

Нико
То есть у вас в одной переменной $sport_follow_team_info хранится набор переменных?

$user = $this->cms_user;
$param1 = $this->request->get('name');
$param2 = $this->request->get('nickname');
$team_id = $this->request->get('team_id');

$follow['user_id'] = $user->id;
$follow['team_id'] = $team_id;
$follow['nickname'] = $param2;
$follow['name'] = $param1;
$team_follow = $this->model->incrementSport($follow);

Нико

Loadырь

Нет я не дописал извиняюсь

  1. public function getSportsFollowTeamInfo($id){
  2. $this->filterEqual('team_id', $id);
  3. return $this->getCount('sport_follow');
  4.  
  5. }
Вот потом передаю число в шаблон
#26 3 октября 2017 в 17:25
Тогда не обращайте внимание на возврат из экшена, просто пропишите в яваскрипте
  1. $('.button17').click( function() {
  2.  
  3. $.ajax({
  4. type: 'POST',
  5. url: '/sports/increment',
  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. var follow = <?php echo $sport_follow_team_info; ?> + 1; // или минус 1
  14. $('.results').html(follow);
  15. }
  16. });
  17.  
  18. });
#27 3 октября 2017 в 17:31


Тогда не обращайте внимание на возврат из экшена, просто пропишите в яваскрипте

  1. $('.button17').click( function() {
  2.  
  3. $.ajax({
  4. type: 'POST',
  5. url: '/sports/increment',
  6. data: 'user_id=&team_id=',
  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. var follow = + 1; // или минус 1
  14. $('.results').html(follow);
  15. }
  16. });
  17.  
  18. });

Loadырь

Спасибо большое думал об этом не знал как сделать

  1. <script>
  2. $('.button16').click( function() {
  3.  
  4. $.ajax({
  5. type: 'POST',
  6. url: '/sports/increment',
  7. data: 'team_id=<?php echo $id_page; ?>',
  8. success: function(msg){
  9. $('.buttons16').css('display', 'none');
  10. $('.buttons17').css('display', 'block');
  11.  
  12. $('.buttons18').css('display', 'block');
  13. $('.buttons19').css('display', 'none');
  14. var follow = <?php echo $sport_follow_team_info; ?> + 1; // или минус 1
  15. $('.results').html(follow);
  16. }
  17. });
  18.  
  19. });
  20.  
  21. $('.button17').click( function() {
  22.  
  23. $.ajax({
  24. type: 'POST',
  25. url: '/sports/decrement',
  26. data: 'user_id=<?php echo $user->id; ?>&team_id=<?php echo $id_page; ?>',
  27. success: function(msg){
  28. $('.buttons17').css('display', 'none');
  29. $('.buttons16').css('display', 'block');
  30.  
  31. $('.buttons18').css('display', 'none');
  32. $('.buttons19').css('display', 'block');
  33. //$('.results').html('<?php echo $sport_follow_team_info; ?>');
  34. var follow = <?php echo $sport_follow_team_info; ?> - 0; // или минус 1
  35. $('.results').html(follow);
  36.  
  37.  
  38. }
  39. });
  40.  
  41. });
  42. </script>
  43.  
  44.  
  45.  
  46. <div class="results"><?php echo $sport_follow_team_info; ?></div>
#28 3 октября 2017 в 19:47
Loadырь, Тут маленькая проблема вышла у меня. Возможно ли вот этот код как то записать jquey ?

  1. if ($user->id == isset($sport_follow_team['user_id'])) { ?>
  2. var follow = <?php echo $sport_follow_team_info; ?> - 1; // или минус 1
  3. $('.followers_count').html(follow);
  4. } else {
  5. var follow = <?php echo $sport_follow_team_info; ?> - 0; // или минус 1
  6. $('.followers_count').html(follow);
  7. }
Спасибо
#29 3 октября 2017 в 19:57

if ($user->id == isset($sport_follow_team['user_id'])) { ?>

Нико
Судя по коду у вас: если id пользователя равно существованию индекса "user_id" в переменной $sport_follow_team, то тут сложно понять ваш ход мыслей.
#30 3 октября 2017 в 20:21


if ($user->id == isset($sport_follow_team['user_id'])) { ?>

Нико
Судя по коду у вас: если id пользователя равно существованию индекса "user_id" в переменной $sport_follow_team, то тут сложно понять ваш ход мыслей.

Loadырь

Да, там значит если равны то пользователь только может увидеть кнопу отписаться, если нет то он может подписаться.

А после того кам мы сделали +1 и — 0 получается так. если я сделаю -1 тогда сразу минус два будет. То что я вам послал это решения просто в jquery не знаю как прописать.


Вот например

  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. if ($user->id == isset($sport_follow_team['user_id'])) { ?>
  14. var follow = <?php echo $sport_follow_team_info; ?> - 0;
  15. $('.followers_count').html(follow);
  16. } else { var follow = <?php echo $sport_follow_team_info; ?> - 1;
  17. $('.followers_count').html(follow);
  18. }
  19. }
  20. });
  21.  
  22. });
  23. </script>
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.