2016-07-14 5 views
0

Я редактирую шаблон сообщения Wordpress. И я хочу вызвать функцию PHP в javascript, но мой код не работает.Javascript call PHP function

  1. Вот что я хочу сделать. Когда пользователь нажимает OK button, при вызове функции функции PHP или сбое должно отображаться окно предупреждения. enter image description here

Вот мой JS код:

(function() { 
tinymce.PluginManager.add('facebook_api_tinymce', function(editor, url) { 
    editor.addButton('facebook_api_tinymce', 
      { 
     title: 'Set friend condition', 
        text: 'Condition', 
        type: 'menubutton', 
        menu: 
        [  
         { 
          text: 'Friend', 
           onclick: function() { 
           editor.windowManager.open({ 
            body:[ 
              { 
              type: 'textbox', 
              name: 'textboxName', 
              label: 'Set friend', 
              value: '20'  
              } 
             ],onsubmit: function(e) { 

              $.ajax({ 
               url: 'databaseConnection.php', 
               type: 'GET', 
               data: {functionname: 'updateDatabase', post_id: 1, no_friend: 2}, 
               error:function(){ 
                alert("failed"); 

               }, 
               success: function(data) { 
                alert("success"); 
                console.log(data); // Inspect this in your console 
               } 
              }); 
             } 

           });  
           } 

          } 
        ] 

    }); 

}); 

А вот мой PHP код:

<?php 


$post_id = 0; 
$no_friend = 0; 

//Check did it pass the functionName 
if(!isset($_POST['functionname'])) 
     $error = 'No function name!'; 


//Check did it pass the Post id 
if(!isset($_POST['post_id'])) 
    $error = 'No function post_id!'; 
else { 
    $post_id = $_POST['post_id']; 
} 

//Check did it pass the no_friend 
if(!isset($_POST['no_friend'])) 
    $error = 'No function no_friend!'; 
else{ 
    $no_friend = $_POST['no_friend']; 
} 


//If no data are missed 
if(!isset($error)) { 

    switch($_POST['functionname']) { 
     case 'updateDatabase': 

      updateDatabase(intval($post_id), intval($no_friend)); 
      break; 

     default: 
      $error = 'Not found function '.$_POST['functionname'].'!'; 
      break; 
    } 

} 



function updateDatabase($post_id, $no_friend) 
{ 
    $ans = $post_id + $no_friend; 
    echo $ans; 

} 

echo $error; 

Он должен показать окно предупреждения. Что я ошибаюсь?

+2

Вы используя 'Тип:" GET "' в ajax, но вы пытаетесь получить значение в php, используя 'POST' – Sree

+0

Thx много. проблема была исправлена. – Capslock10

ответ

0

Что вы получаете от вас звонок Ajax? Так что же это

console.log(data); // Inspect this in your console 

на самом деле показывают? Если это целая страница Wordpress, возможно, ваши функции PHP работают, но они никогда не исполняются. Это может быть связано с перезаписью .htaccess и т. Д.

+0

Он показал, когда я использовал 'jQuery.ajax' Но я напечатал ошибку, которая ничего не передала PHP. Что не так? спасибо. – Capslock10

0

Вы используете Type:"GET" в AJAX, но вы пытаетесь получить значение в PHP с помощью POST

Просто изменить свой Type:"GET" к Type:"POST" асинхронность или

Изменение POST к GET в PHP коде