Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用PHP函数并将值返回到Javascript_Javascript_Php_Wordpress - Fatal编程技术网

调用PHP函数并将值返回到Javascript

调用PHP函数并将值返回到Javascript,javascript,php,wordpress,Javascript,Php,Wordpress,我正在使用Wordpress,而Javascript将在编辑帖子上向编辑器插入文本 我有两个文件,一个是js,另一个是PHP文件。我想调用PHP函数将数据库值返回到Javascript 我在做什么: 我有[value-X]分//Javascript会将其插入编辑器中。[value-x]是从PHP函数返回的值 这是我的JavaScript: onsubmit: function( e ) { var str = '';

我正在使用
Wordpress
,而
Javascript
将在编辑帖子上向编辑器插入文本

我有两个文件,一个是
js
,另一个是
PHP
文件。我想调用
PHP
函数将数据库值返回到
Javascript

我在做什么:

我有[value-X]分//Javascript会将其插入编辑器中。[value-x]是从PHP函数返回的值

这是我的
JavaScript

   onsubmit: function( e ) 
{
var str = '';                                                                    
if(e.data.friend_cb ) 
{                                                                            
    str += 'I have [value - X] points. <br><br/>';
}

editor.insertContent(str);



jQuery.ajax({
    url: 'http://localhost:8080/wordpress/wp-content/plugins/databaseConnection.php',
    type: 'POST',
    data: {functionname: 'getX', condition_code: condition_code},
        error:function(data)
        {
            alert("failed");
            console.log(data);
        },
        success: function(data) 
        {
            alert("success");                                                                                
            console.log(data); // Inspect this in your console
        }
});
我怎样才能得到X值

非常感谢

例如

<script type="text/javascript">
  var phpVariable = "<?php
  $x = getX();
  echo $x;
  ?>";
</script>

var phpVariable=“”;
首先将php值存储到javascript变量中,然后在javascript中使用它。只需确保在使用该变量的脚本之前声明该变量并为其赋值。

例如

<script type="text/javascript">
  var phpVariable = "<?php
  $x = getX();
  echo $x;
  ?>";
</script>

var phpVariable=“”;

首先将php值存储到javascript变量中,然后在javascript中使用它。只需确保在使用该变量的脚本之前声明该变量并为其赋值。

首先要做的事情是。如果您正在使用
wordpress
,您应该以wordpress的方式调用ajax

见:

您的javascript应该是

onsubmit: function( e ) {
    var str = '';                                                                    
    if(e.data.friend_cb ) {                                                                            
        str += 'I have [value - X] points. <br><br/>';
    }

    editor.insertContent(str);

    jQuery.ajax({
        url: ajaxurl,
        type: 'POST',
        data: {
            action:'my_ajax_function',
            functionname: 'getX', 
            condition_code: condition_code
        },
        error:function(data){
            alert("failed");
            console.log(data);
        },
        success: function(data) {
            alert("success");                                                                                
            console.log(data); // Inspect this in your console
        }
    });
}
add_action( 'wp_ajax_my_ajax_function', 'my_ajax_function' );
add_action( 'wp_ajax_nopriv_my_ajax_function', 'my_ajax_function' );

function my_ajax_function(){
    if( !isset($_POST['condition_code']) ) {
          $error .= 'No function no_friend!';          
          $condition_code = $_POST['condition_code'];
    }

    $functionName  = $_POST['functionname'];
          // $functionName = 'add_bonus_point';
    switch($functionName) {
        case 'set_no_friend':  


             //Check did it pass the functionName
            if( !isset($_POST['functionname']))
                  $error .= 'No function name!'; 
            else
                 $errorBool = false;
            break;
        case 'try_insert':
            getX();
            break;
    }
}

function getX(){
     // access global variable $wpdb database connection object
     global $wpdb; 
     $x = 0;
     //Connect to database, get X value.
     return $x;
}

第一件事。如果您正在使用
wordpress
,您应该以wordpress的方式调用ajax

见:

您的javascript应该是

onsubmit: function( e ) {
    var str = '';                                                                    
    if(e.data.friend_cb ) {                                                                            
        str += 'I have [value - X] points. <br><br/>';
    }

    editor.insertContent(str);

    jQuery.ajax({
        url: ajaxurl,
        type: 'POST',
        data: {
            action:'my_ajax_function',
            functionname: 'getX', 
            condition_code: condition_code
        },
        error:function(data){
            alert("failed");
            console.log(data);
        },
        success: function(data) {
            alert("success");                                                                                
            console.log(data); // Inspect this in your console
        }
    });
}
add_action( 'wp_ajax_my_ajax_function', 'my_ajax_function' );
add_action( 'wp_ajax_nopriv_my_ajax_function', 'my_ajax_function' );

function my_ajax_function(){
    if( !isset($_POST['condition_code']) ) {
          $error .= 'No function no_friend!';          
          $condition_code = $_POST['condition_code'];
    }

    $functionName  = $_POST['functionname'];
          // $functionName = 'add_bonus_point';
    switch($functionName) {
        case 'set_no_friend':  


             //Check did it pass the functionName
            if( !isset($_POST['functionname']))
                  $error .= 'No function name!'; 
            else
                 $errorBool = false;
            break;
        case 'try_insert':
            getX();
            break;
    }
}

function getX(){
     // access global variable $wpdb database connection object
     global $wpdb; 
     $x = 0;
     //Connect to database, get X value.
     return $x;
}

您可以放置json数组来获取数据。请写下面的代码

function getX()
 {
     $x = 0;
     //Connect to database, get X value.
     $data = array(
            "x"     => 0
          );
      echo json_encode($data);

 }
和Javascript代码,如下所示

jQuery.ajax({
    url: 'http://localhost:8080/wordpress/wp-content/plugins/databaseConnection.php',
    type: 'POST',
    data: {functionname: 'getX', condition_code: condition_code},
        error:function(data)
        {
            alert("failed");
            console.log(data);
        },
        success: function(data) 
        {
            var obj = jQuery.parseJSON(data);
            alert( obj.x );

            console.log(obj); // Inspect this in your console
        }
});

您可以放置json数组来获取数据。请写下面的代码

function getX()
 {
     $x = 0;
     //Connect to database, get X value.
     $data = array(
            "x"     => 0
          );
      echo json_encode($data);

 }
和Javascript代码,如下所示

jQuery.ajax({
    url: 'http://localhost:8080/wordpress/wp-content/plugins/databaseConnection.php',
    type: 'POST',
    data: {functionname: 'getX', condition_code: condition_code},
        error:function(data)
        {
            alert("failed");
            console.log(data);
        },
        success: function(data) 
        {
            var obj = jQuery.parseJSON(data);
            alert( obj.x );

            console.log(obj); // Inspect this in your console
        }
});

输出它,如
echo..
我不知道为什么
echo
post
上不起作用。单独的js文件中的javascript代码是什么?@Capslock10在js中替换以下行:
data:{functionname:'try\u insert',condition\u code:condition\u code},//functionname:'try\u insert',而不是getX
输出它,如
echo..
我不知道为什么
echo
post
上不起作用。单独的js文件中的javascript代码是什么?@Capslock10在js中替换以下行:
data:{functionname:'try\u insert',condition\u code:condition\u code},//functionname:'try\u insert',而不是getX
干净简单!Thx。干净、简单!谢谢。