这是我的javaScript代码:
$(document).ready(function() {
$('#IMDB').click(function() {
var MovieID = $('#MovieID').val();
$.post('action/action.php', { url: "http://api.themoviedb.org/3/movie/"+MovieID
+"?append_to_response=credits,images&api_key=myapikey" }, function(data) {
$("#test").html(data);
});
});
});
当我点击按钮时,我从我输入的输入字段中获取了imdb id 然后我从php获得实际结果。这是我的PHP代码。
<?php
$url = $_POST['url'];
$url2 = file_get_contents($url);
$json = json_decode($url2, true); //This will convert it to an array
$title = $json['original_title'];
$imdb = $json['imdb_id'];
echo $title;
echo $imdb;
return true;
?>
但我得到的结果如下:
蝙蝠侠:杀戮Jokett4853102
一个是电影标题,另一个是同一个html tage中的imdb id。但我想在每个html标签中显示我的每个结果,如下所示:
$("#test").html(data); // result 1 -- movie title
$("#test2").html(data); // result 2 --- imdb id
请帮助我如何获得多重价值?
答案 0 :(得分:7)
输出整个JSON结构并在Javascript中使用它可能是最简单的,但是如果你只想要标题和id,请将你的个人echo
调用更改为带有哈希的那个:
header('Content-Type: application/json');
echo json_encode(array(
'title' => $title,
'id' => $imdb
));
然后您可以使用以下命令在javascript中引用它们:
var id = data.id;
var title = data.title;
答案 1 :(得分:1)
您只需返回一个数组而不是分隔值:
return json_encode([$title,$imdb]);
然后在你的js中解析返回的数据并从中获取你想要的属性:
data = JSON.parse(data);
$("#test").html(data[0]);
$("#test2").html(data[1]);
或者您可以在json
请求中添加$.post
,而不必解析返回的数据:
$.post('action/action.php', { url: ...}, function(data) {
$("#test").html(data[0]);
$("#test2").html(data[1]);
}, "json");
//__^^^^__
希望这有帮助。