2017-01-07 20 views
0

私の質問を見ていただきありがとうございます。まず、この性質の質問が尋ねられたのは初めてではありませんが、私は今3時間以上StackOverflowを読んでいます...まだそれは理解できませんでる。私はjson_encodeを使用してmessaging.jsmessaging.phpから値を送信しようとしているjQueryのAJAXがPHPからJSON文字列を受け取っていないのはなぜですか?

はここで要点です。

- >ここで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プラットフォームで開発中です
  • 私はmessaging.phpを使用してデータベースにデータを送信しています(その理由はありますか?)私はアヤックス成功関数から何かを得ることはありません

、それは決して「アラート」

することができます任意のヘルプを提供してください、私はそれを非常に感謝!

+0

?ブラウザの開発者ツールでレスポンスを探しましたか? – Mottie

+0

エラーコールバックを使用してチェックしましたか?呼び出しが失敗した場合 – Deep

+1

私は、成功した後にエラーコールバックを追加して、ある時点で要求が失敗しているかどうかを確認することをお勧めします。 –

答えて

4

wordpressでファイル(messaging.php)にアクセスしようとしています(wordpressから)、messaing.phpで "global $ wpdb;"が間違っています。

まず、必要なワードプレスファイルを含める必要があります。メッセージを以下のコードに追加してください。

define('SHORTINIT', true); 
require('{wp_root}/wp-load.php'); 

変更{wp_root}あなたのwordpressがサーバールートにインストールされている場合、$ _SERVER ["DOCUMET_ROOT"]のようになります。そうしないと、手動で調整する必要があります。詳細は

は、このページをチェックしてください。Using WPDB in standalone script? `sendMessage`関数が呼び出されている方法

関連する問題