我正在使用Wordpress
,而Javascript
会将文字插入编辑帖子的编辑器中。
我有两个文件,一个是js
,另一个是PHP
文件。我想调用PHP
函数将数据库值返回到Javascript
。
我在做什么:
我有[值 - 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
}
});
这是PHP
函数:
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()
{
$x = 0;
//Connect to database, get X value.
return $x;
}
如何获取值X?
很多。
答案 0 :(得分:1)
首先是第一件事。如果您正在使用wordpress
,则应以wordpress方式调用ajax
请参阅:https://codex.wordpress.org/AJAX_in_Plugins
你的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
}
});
}
您的PHP代码应该是
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;
}
答案 1 :(得分:1)
您可以将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
}
});
答案 2 :(得分:0)
例如
<script type="text/javascript">
var phpVariable = "<?php
$x = getX();
echo $x;
?>";
</script>
将php值存储到javascript变量中,然后在javascript中使用它。只需确保声明此变量并在使用它的脚本之前为其赋值。