Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вызвать php функцию в js
Форумы портала PHP.SU » » Вопросы новичков » Вызвать php функцию в js

Страниц (1): [1]
 

1. IGI66 - 03 Февраля, 2019 - 16:57:24 - перейти к сообщению
Есть функция в function.php и мне нужно ее вызвать в плагине. Пишут что только через Ajax, но что то не получается...

Вот php
PHP:
скопировать код в буфер обмена
  1. function postStatus() {
  2.     $postID = get_the_ID();
  3.     $my_post = array(
  4.         'ID'           => 58,
  5.         'post_status' => 'publish'
  6.     );
  7.     wp_update_post( $my_post );
  8. }


Вот js
CODE (javascript):
скопировать код в буфер обмена
  1. var liftoffTime = new Date();
  2.         liftoffTime = new Date('<?=get_sub_field('offer_time_left'); ?>');
  3.     $('.offer-time-left').countdown({
  4.         until: liftoffTime,
  5.         expiryText: '<div class="over">Offer is over</div>',
  6.         onExpiry: liftOff,
  7.         format: 'd h m',
  8.         labels: ['y', 'm', 'w', 'd', 'hrs', 'mins', 's'],
  9.         labels1 : ['y', 'm', 'w', 'd', 'hr', 'min', 's']
  10.     });
  11.  
  12.     function liftOff() {
  13.         $.ajax({
  14.             url:"function.php",
  15.             data:"id=2",
  16.             success: function(){
  17.                 postStatus();
  18.         }
  19.         })
  20.  
  21.     }
2. Vladimir Kheifets - 04 Февраля, 2019 - 10:10:50 - перейти к сообщению
IGI66 пишет:
Есть функция в function.php и мне нужно ее вызвать в плагине. Пишут что только через Ajax, но что то не получается...

Вот php
PHP:
скопировать код в буфер обмена
  1. function postStatus() {
  2.     $postID = get_the_ID();
  3.     $my_post = array(
  4.         'ID'           => 58,
  5.         'post_status' => 'publish'
  6.     );
  7.     wp_update_post( $my_post );
  8. }


Вот js
CODE (javascript):
скопировать код в буфер обмена
  1. var liftoffTime = new Date();
  2.         liftoffTime = new Date('<?=get_sub_field('offer_time_left'); ?>');
  3.     $('.offer-time-left').countdown({
  4.         until: liftoffTime,
  5.         expiryText: '<div class="over">Offer is over</div>',
  6.         onExpiry: liftOff,
  7.         format: 'd h m',
  8.         labels: ['y', 'm', 'w', 'd', 'hrs', 'mins', 's'],
  9.         labels1 : ['y', 'm', 'w', 'd', 'hr', 'min', 's']
  10.     });
  11.  
  12.     function liftOff() {
  13.         $.ajax({
  14.             url:"function.php",
  15.             data:"id=2",
  16.             success: function(){
  17.                 postStatus();
  18.         }
  19.         })
  20.  
  21.     }


Добрый день!
Ошибка в том, что у Вас в JS вызывается PHP-функция postStatus().
$.ajax на клиентской стороне отправляет реквест на сервер и там отрабатывает function.php
Сервер возвращает результ клиенту и здесь
CODE (javascript):
скопировать код в буфер обмена
  1. success: function(){
  2.         // д.б. JS-код  
  3.  }

См. https://stackoverflow[dot]com/questi[dot][dot][dot]to-call-function
Удачи!

 

Powered by ExBB FM 1.0 RC1