2016-08-03 2 views
2

Das ist mein JavaScript-Code:Wie erhalten Sie mehrere Rückgabewert von PHP durch JavaScript/jquery?

$(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); 
     }); 
    }); 
}); 

Wenn ich auf die Schaltfläche klicken ich imdb id aus meinem Eingabefeld bekommen, die ich eingefügt dann habe ich das tatsächliche Ergebnis von PHP zu bekommen. Das ist mein PHP-Code.

<?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; 

?> 

Aber ich bekomme wie dies zur Folge haben:

Batman: The Killing Jokett4853102

Ein Filmtitel ist und eine andere ist imdb-ID in gleichen html tage. aber ich mag, dass mein jedes Ergebnis in jedem HTML-Tag wie folgt angezeigt:

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

Bitte helfen Sie mir, wie mehrere Werte zu bekommen?

+0

'Echo json_encode (array ($ title, $ imdb));' verwenden Sie dann das Objekt zurückgegeben. – AbraCadaver

Antwort

7

wäre es wahrscheinlich am einfachsten, nur die Ausgabe mit der in Javascript die gesamte JSON Struktur und arbeiten, aber wenn Sie nur den Titel und id wollen, ändern Sie Ihre individuellen echo Anrufe an eine mit einem Hash:

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

dann können Sie sie in Ihrem Javascript-Referenz verwenden:

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

OP: Dies ist die beste Antwort. Ich empfehle, dies als Ausgangspunkt verwenden. –

+0

wow vielen dank @Rob M. Perfekt antwort danke so viel :) :) –

+0

Kein Problem, froh, dass es dir geholfen hat! –

1

Sie einfach ein Array statt getrennten Werten zurückkehren konnte:

return json_encode([$title,$imdb]); 

dann die zurückgegebenen Daten in Ihrem js analysieren und zupfen Sie die Attribute von ihm wollen:

data = JSON.parse(data); 

$("#test").html(data[0]); 
$("#test2").html(data[1]); 

Oder Sie könnten hinzufügen json an die $.post Anfrage die Sie müssen die zurückgegebenen Daten nicht analysieren:

$.post('action/action.php', { url: ...}, function(data) { 
    $("#test").html(data[0]); 
    $("#test2").html(data[1]); 
}, "json"); 
//__^^^^__ 

Hoffe, das hilft.

+0

es gibt nur ein Wort zurück :(erster Buchstabe des Filmtitels –

+0

Überprüfen Sie das Update bitte .. –