Javascript调用PHP函数

时间:2016-07-14 09:13:09

标签: javascript php jquery wordpress

我正在编辑wordpress帖子模板。我想在javascript中调用PHP函数,但我的代码不起作用。

  1. 这是我想要做的。当用户单击OK button时,在调用PHP函数成功或失败时应显示一个警告框。 enter image description here
  2. 这是我的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 个答案:

答案 0 :(得分:0)

你从Ajax电话中得到什么回复?这是什么

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

实际上显示?如果它是一个完整的Wordpress页面,那么也许你的PHP函数可以工作,但它们永远不会被执行。这可能是由于.htaccess重写等等。

答案 1 :(得分:0)

您在ajax中使用Type:"GET"但是您正试图使用​​POST

在php中获取价值

只需将您的Type:"GET"更改为ajax中的Type:"POST"

即可

在php代码中将POST更改为GET