我正在使用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
}
});
下面是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?
非常感谢。
重要的事先说。如果你在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;
}
您可以使用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
}
});
例如
<script type="text/javascript">
var phpVariable = "<?php
$x = getX();
echo $x;
?>";
</script>
首先将PHP值存储到javascript变量中,然后在javascript中使用它。只要确保在使用它的脚本之前声明该变量并为其赋值即可。