如何通过javaScript/jquery从php获取多个返回值?

如何通过javaScript/jquery从php获取多个返回值?

问题描述:

这是我的JavaScript代码:如何通过javaScript/jquery从php获取多个返回值?

$(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编号从我插入 然后我得到从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塔格IMDB编号。但我想要显示我的每个结果在每个html标记是这样的:

$("#test").html(data); // result 1 -- movie title 
$("#test2").html(data); // result 2 --- imdb id 

请帮我怎么得到多个值?

+0

'回声json_encode(阵列($标题,$ IMDB));'然后使用返回的对象。 – AbraCadaver

它很可能是最简单的只是输出的整个JSON结构,在Javascript与工作,但如果你只是想在标题和编号,您的个人echo电话与哈希更改为:

header('Content-Type: application/json'); 
echo json_encode(array(
    'title' => $title, 
    'id' => $imdb 
)); 

然后你可以使用引用它们在你的JavaScript:

var id = data.id; 
var title = data.title; 
+1

OP:这是最好的答案,我建议使用此作为起点 –

+0

哇非常感谢@Rob中号完美。回答谢谢你:) :) –

+0

没问题,很高兴帮助你! –

你可以简单地返回一个数组,而不是分割的值:

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"); 
//__^^^^__ 

希望这有助于。

+0

它返回只有一个字:(电影标题 –

+0

的第一个字母检查更新,请.. –