2016-02-29 58 views
0

所以我的工作流程是onClick的list元素,我的JS发起一个PHP AJAX请求来构建一个卡片对象。 $内容是主题数据的卡片(类似于KickStarter)。我想要做的是传递每个topic-instance的'topic_id',这样我就可以在成功函数中使用它,然后启动另一个AJAX请求(但是发送到Discourse)。将一个PHP变量传递给JavaScript对于AJAX请求

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

(我希望得到的回报一个空行的Web控制台的变量的console.log())Ajax请求:

$.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() { 

话题的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> 

+0

为什么不直接用php代替js。顺便说一句,你没有打印js var。可以使用document.write – C2486

回答

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