我正在编辑wordpress帖子模板。我想在javascript中调用PHP函数,但我的代码不起作用。
OK button
时,在调用PHP函数成功或失败时应显示一个警告框。
这是我的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;
它应该显示一个警告框。我错了什么?
答案 0 :(得分:0)
你从Ajax电话中得到什么回复?这是什么
console.log(data); // Inspect this in your console
实际上显示?如果它是一个完整的Wordpress页面,那么也许你的PHP函数可以工作,但它们永远不会被执行。这可能是由于.htaccess重写等等。
答案 1 :(得分:0)
您在ajax中使用Type:"GET"
但是您正试图使用POST
只需将您的Type:"GET"
更改为ajax中的Type:"POST"
或
在php代码中将POST
更改为GET