将一个PHP变量传递给JavaScript对于AJAX请求
问题描述:
所以我的工作流程是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>
答
试试这个:
在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
变量。
为什么不直接用php代替js。顺便说一句,你没有打印js var。可以使用document.write – C2486