将PHP变量传递给JavaScript以获取AJAX请求

时间:2016-02-29 23:27:21

标签: javascript php jquery ajax

所以我的工作流是onClick一个列表元素,我的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() {

topic-search.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>

1 个答案:

答案 0 :(得分:0)

试试这个:

在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变量。