将 PHP 变量传递给 JavaScript For AJAX Request


Passing a PHP variable to JavaScript For AJAX Request

所以我的工作流程是,在单击列表元素时,我的JS发起PHP AJAX请求来构建卡对象。 $content是主题数据的卡片(类似于KickStarter)。 我试图做的是传递每个主题实例的"topic_id",以便我可以在成功函数中使用它,然后启动另一个 AJAX 请求(但对话语)。

尝试 2),在 Web 检查器中查看其值时,我得到一个 null。

AJAX 请求(我想获取的变量的 console.log() 在 Web 控制台中返回一个空行):

$.post( "/wp-content/mu-plugins/topic-search.php", { topicID: $topicFilter, filterBy: $sortByFilter },
        function( data ) {
            console.log(topic_id);
            data = data.trim();
            if ( data !== "" ) {
                //get the participants data for avatars
                $.getJSON('http://ask.example.com/t/' + topic_id + '.json', function() {

主题搜索.php的结束,它呼应了建立起来的卡片。脚本应该返回 topic_id 变量以用于成功函数。

    }

    //One attempt:     echo $content; //
    //Another attempt: echo json_encode(array('data' => $content, 'topic_id' => $row['topicid']));//
}
?>
<script>
var topic_id = "<?php echo $row['topicid'] ?>";
</script>

试试这个:

在 php 中

$inputJson = file_get_contents('php://input');
$input = json_decode($inputJson, true); //Convert JSON into array

在 JavaScript 中

    var $url = '/wp-content/mu-plugins/topic-search.php';
    var $json = JSON.stringify({topicID: $topicFilter, filterBy: $sortByFilter});
    $.ajax({
        url: $url,
        type: "POST",
        data: $json,
        dataType: "json",
        success: function(data){//you will have the body of the response in data
          //do something
        },
        error: function(data){
          //do something else
        }
    });

编辑:

这将请求$url $json数据。您将在服务器端$input上将其作为阵列提供。然后,您可以在服务器上准备一个带有 json 正文的响应,您将在成功函数上作为data变量提供该响应。