感谢您查看我的问题,首先,我知道这不是第一次提出这种性质的问题,但我已经阅读 StackOverflow 3 个多小时了……仍然无法弄清楚.
要点如下:
我正在尝试使用 json_encode 将值从 messaging.php 发送到 messaging.js。
-> 这是 messaging.php 代码:
<?php
header('Content-Type: application/json');
global $wpdb;
$current_user = wp_get_current_user();
$to = $_POST['uname'];
$subject = $_POST['subject'];
$message = $_POST['msg'];
$table_name = $wpdb->prefix . 'none_of_ur_business';
if(isset($to) && isset($to) && isset($to)):
$wpdb->insert(
$table_name,
array(
'notit_sender_userid' => $current_user->display_name,
'notit_receiver_userid' => $to,
'notit_subject' => $subject,
'notit_message' => $messagem
)
);
$testtext = 'does this work??';
echo json_encode(array('test' => $testtext));
endif;
这是 messaging.js 代码:
function sendMessage(uname, subject, message){
$.ajax({
url : wp_directory+'/modules/messaging/messaging.php',
dataType : 'JSON',
type : 'post',
data: {
'uname' : uname,
'subject' : subject,
'msg' : message
},
success: function(data) {
alert(data.test);
}
});
一些相关的事情:
我没有从ajax成功函数中得到任何东西,它从不“警报”
请提供任何您能提供的帮助,我将不胜感激!
在 WordPress 中,您尝试单独访问文件(messaging.php)(在 WordPress 之外),而在mesaing.php 中,您使用了“global $wpdb;”,这是错误的。
首先您应该包含必要的 WordPress 文件。将以下代码添加到您的 messages.php
define( 'SHORTINIT', true );
require '{wp_root}/wp-load.php';
更改 {wp_root}。如果你的 WordPress 安装在服务器根目录上,那么它将像 $_SERVER["DOCUMET_ROOT"] 或者你必须手动调整。
有关更多信息,请查看此页面:在独立脚本中使用 WPDB?