为什么 jQuery 中的 AJAX 无法接收来自 PHP 的 JSON 字符串?

问题描述 投票:0回答:1

感谢您查看我的问题,首先,我知道这不是第一次提出这种性质的问题,但我已经阅读 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);
     }

  });

一些相关的事情:

  • 我正在WordPress平台上开发
  • 我使用 messages.php 将数据发送到我的数据库(也许这就是原因,它不起作用??

我没有从ajax成功函数中得到任何东西,它从不“警报”

请提供任何您能提供的帮助,我将不胜感激!

javascript php jquery json ajax
1个回答
3
投票

在 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?

© www.soinside.com 2019 - 2024. All rights reserved.