Отправка данных в базу без перезагрузки страницы 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 624
Друзья есть ли в самом движке какой то обработчик jquery или скрипт который сможет обработать данные сразу занести в базу.
Например есть кнопка которая будет отправлять в базу +1 (increment) и user_id то кто нажал как можно это сделать. Спасибо!
Редактировалось: 1 раз (Последний: 1 октября 2017 в 01:17)
Посетитель
small user social cms
Медаль
Сообщений: 624
Странник:

ajax

Да знаю с ajax, но не хочу брать сторонние функции а как то например кнопка лайка сделать.
Редактировалось: 1 раз (Последний: 1 октября 2017 в 01:39)
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1981
ajax не сторонная функция, а встроенная в jquery. если вы используете jquery, у вас доступ к ajax имеется уже.
NOP
Посетитель
small user social cms
Медаль
Сообщений: 653
Нико:
Друзья есть ли в самом движке какой то обработчик jquery или скрипт который сможет обработать данные сразу занести в базу.
писать свой action для обработки запроса придется вам - несколько строк кода.
Посетитель
small user social cms
Медаль
Сообщений: 624
@SmartControl:

Нико:
Друзья есть ли в самом движке какой то обработчик jquery или скрипт который сможет обработать данные сразу занести в базу.
писать свой action для обработки запроса придется вам - несколько строк кода.

Понятно, а есть ли какой нибудь пример что бы упираться ему и переписать как то ?
Посетитель
small user social cms
Медаль
Сообщений: 653
Нико, изменение кармы, например. Экшн можно подсмотреть в консоли, поменяв карму.
Ну а как работать с ajax на jquery лучше почитать в интернете..

Схема -
1. добавить аякс запрос при клике на что-то, который будет вызывать экшн компонента
2. в экшене добавить вызов метода модели
3. в модели прописать нужные изменение в БД
Посетитель
small user social cms
Медаль
Сообщений: 624
@SmartControl:

Нико, изменение кармы, например. Экшн можно подсмотреть в консоли, поменяв карму.
Ну а как работать с ajax на jquery лучше почитать в интернете..

Схема -
1. добавить аякс запрос при клике на что-то, который будет вызывать экшн компонента
2. в экшене добавить вызов метода модели
3. в модели прописать нужные изменение в БД

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

@SmartControl,

Код PHP:
  1.  
  2. <script src="jquery.min.js" type="text/javascript"></script>
  3.  
  4. <div class="buttons15">
  5. <button name = "button16" class="button16"><?php echo LANG_SPORT_FOLLOW; ?></a>
  6. </div>
  7.  
  8.  
  9. </div>
  10.  
  11.  
  12. <script language="javascript" type="text/javascript">
  13. $('.button16').click( function() {
  14.  
  15. $.ajax({
  16. type: 'POST',
  17. url: 'response.php?action=sample2',
  18. data: 'name=Andrew&nickname=Aramis',
  19. success: function(data){
  20. $('.results').html(data);
  21. }
  22. });
  23.  
  24. });
  25.  
  26. </script>
  27.  
  28. <div class="results">Ждем ответа</div>
  29.  

Код PHP:
  1. <?php
  2.  
  3. switch ($_REQUEST['action']) {
  4. case 'button16':
  5. echo 'Пример 2 - передача завершилась успешно. Параметры: name = ' . $_POST['name'] . ', nickname= ' . $_POST['nickname'];
  6. break;
  7. $aRes = array('name' => 'Andrew', 'nickname' => 'Aramis');
  8.  
  9. }
  10.  
  11. ?>
  12.  
В простом пхп знаю как делать и у меня работает но вот на этом движке ни как не пойму как подключить =(
Редактировалось: 1 раз (Последний: 1 октября 2017 в 12:26)
Посетитель
small user social cms
Медаль
Сообщений: 624
Код PHP:
  1. Добавил пока экшен
  2.  
  3. class actionSportsTeamFollow extends cmsAction {
  4. public function run($id = false){
  5. if (!cmsUser::isLogged()) { cmsCore::error404(); }
  6. if (!$this->request->isAjax()){ cmsCore::error404(); }
  7. $user = cmsUser::getInstance();
  8. $follow = array(
  9. 'user_id' => $user->id,
  10. 'profile_id' => $profile_id
  11. );
  12. $sport_follow_team_add = $this->model->addSportsFollowTeam($follow);
  13. return $this->cms_template->renderJSON(array(
  14. 'error' => $sport_follow_team_add ? false : true
  15. ));
  16. } }
  17.  
  18. model.php
  19. /* Follow Team */
  20. public function getSportsFollowTeam($id){
  21. $sport_follow_team['sport_follows_team'] = $this->get('sport_follow');
  22. return $sport_follow_team;
  23. }
  24. public function addSportFollowTeam($follow){
  25. return $this->insert('sport_follow', $follow);
  26. }
  27. public function updateSportFollowTeam($id){
  28. return $this->update('sport_follow', $id);
  29. }
  30.  
Редактировалось: 1 раз (Последний: 1 октября 2017 в 12:55)
Посетитель
small user social cms
Медаль
Сообщений: 624
@SmartControl, Все сдаюсь дальше не знаю facepalm
Посетитель
small user social cms
Медаль
Сообщений: 624
Спойлер


Код PHP:
  1.  
  2. <div class="buttons15">
  3. <div id="user_profile_rates"
  4. data-url="<?php echo $this->href_to('team_follow', 1); ?>">
  5. <div class="karma block">
  6. <a href="#vote-up" onclick="return icms.users.karmaUp()" class="thumb thumb_up button16"><?php echo LANG_SPORT_FOLLOW; ?></a>
  7. </div>
  8. </div>
  9. </div>
Редактировалось: 1 раз (Последний: 1 октября 2017 в 13:51)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Нико:
В простом пхп знаю как делать и у меня работает но вот на этом движке ни как не пойму как подключить =(
Плохой движок, не используйте его. Делайте на "простом пхп" если знаете как!

Нико:
@SmartControl, Все сдаюсь дальше не знаю
Неправильно, надо писать "@SmartControl жду от вас готовый код для копипасты"

Нико, ну реально вы постоянно задаете элементарные вопросы и не воспринимаете подсказки вообще! А ждёте когда вам напишут готовый код.
Ajax-запрос элементарнейшая технология (ок, сама технология не так проста, но на jQuery это просто как раз, два, три). Откройте любую из миллиона статей в интернете изучите что да как и тупо делайте по инструкции! Если вы не хотите учиться тогда не стоит засорять здесь форум, а если хотите развиваться - так учитесь и развивайтесь!
Посетитель
small user social cms
Медаль
Сообщений: 624
Val:

Нико:
В простом пхп знаю как делать и у меня работает но вот на этом движке ни как не пойму как подключить =(
Плохой движок, не используйте его. Делайте на "простом пхп" если знаете как!

Нико:
@SmartControl, Все сдаюсь дальше не знаю
Неправильно, надо писать "@SmartControl жду от вас готовый код для копипасты"

Нико, ну реально вы постоянно задаете элементарные вопросы и не воспринимаете подсказки вообще! А ждёте когда вам напишут готовый код.
Ajax-запрос элементарнейшая технология (ок, сама технология не так проста, но на jQuery это просто как раз, два, три). Откройте любую из миллиона статей в интернете изучите что да как и тупо делайте по инструкции! Если вы не хотите учиться тогда не стоит засорять здесь форум, а если хотите развиваться - так учитесь и развивайтесь!

Я вам честно скажу, я многому научился делать самому из за вашей помощи если бы не вы я бы вообще не знал бы как это делается тем более у нас в стране нету школы этого типа редко где найдешь, из за это всем вам огромное спасибо честно. Но если по теме я правда не могу понять смысл без подсказок, вот я нашел в инете как это вывести но на чистом тупо пхп теперь мне нужно как то на движке сделать. Я не могу перевести код на инстант просто не пойму.
Посетитель
small user social cms
Медаль
Сообщений: 653
Нико:
Я не могу перевести код на инстант просто не пойму.
Да там не сильно отличается от чистого php, Пример небольшой для компонента sport

1. добавляете action во frontend компонента - actionIncrement(){} - можно без параметров. Потому что юзера вы и в нем получите через $this->cms_user->id. И вызываете там метод модели, который меняет базу $this->model->incrementSport($this->cms_user->id);. Соответственно в модели прописываете этот метод
2. в jquery делаете запрос к URL /sport/increment

если через ajax отправляются какие-то данные, то их можно получить в action через
Код PHP:
  1. $param1 = $this->request->get('param1');
  2. $param2 = $this->request->get('param2');
Посетитель
small user social cms
Медаль
Сообщений: 624
@SmartControl:

Нико:
Я не могу перевести код на инстант просто не пойму.
Да там не сильно отличается от чистого php, Пример небольшой для компонента sport

1. добавляете action во frontend компонента - actionIncrement(){} - можно без параметров. Потому что юзера вы и в нем получите через $this->cms_user->id. И вызываете там метод модели, который меняет базу $this->model->incrementSport($this->cms_user->id);. Соответственно в модели прописываете этот метод
2. в jquery делаете запрос к URL /sport/increment

если через ajax отправляются какие-то данные, то их можно получить в action через
Код PHP:
  1. $param1 = $this->request->get('param1');
  2. $param2 = $this->request->get('param2');

Вот так ?

Код PHP:
  1. class sports extends cmsFrontend {
  2.  
  3. public function actionIncrement(){
  4. $this->model->incrementSport($this->cms_user->id);
  5.  
  6. $param1 = $this->request->get('param1');
  7. $param2 = $this->request->get('param2');
  8.  
  9. }
  10. }
model.php
Код PHP:
  1. public function incrementSport($id){
  2. return $this->update('sport_follow', $id);
  3. }

Код PHP:
  1. <?php $this->addJS('templates/default/js/sports.js'); ?>
  2.  
  3. <div class="buttons15">
  4. <div id="user_profile_rates"
  5. data-url="<?php echo $this->href_to('team_follow', 1); ?>">
  6. <div class="karma block">
  7. <a href="#vote-up" onclick="return icms.users.karmaUp()" class="thumb thumb_up button16"><?php echo LANG_SPORT_FOLLOW; ?></a>
  8. <?php foreach ($sport_follow_team as $follow){ ?>
  9. <span class="value <?php echo html_signed_class($follow['points']); ?>" title="<?php echo LANG_KARMA; ?>">
  10. <?php echo html_signed_num($follow['points']); ?>
  11. </span>
  12. <?php } ?>
  13. </div>
  14. </div>
  15.  
  16. </div>
Спойлер
Редактировалось: 2 раз (Последний: 2 октября 2017 в 00:33)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.