2017-03-24 2 views
-1

Ich versuche, einen sehr einfachen PHP-Aufruf von meiner Haupt-HTML-Datei, die die Website ausführt, zu machen. Ich habe die folgende PHP-Datei, die Google API verwendet, um Reisezeit zu berechnen.So verwenden Sie AJAX, um eine PHP-Funktion aufzurufen

travelTime.php

$travelDetails = "https://maps.googleapis.com/maps/api/distancematrix/json?origins...; 

$json = file_get_contents($travelDetails); 

$details = json_decode($json, TRUE); 

$time = $details['rows'][0]['elements'][0]['duration']['text']; 

echo "Your current travel time is $time"; 

Diese berechnet aus meinem Hause die Reisezeit zu arbeiten, und ich habe es auf der Website angezeigt wird den folgenden Code in dem Körper des HTML-Codes verwenden. Diese Datei heißt info.php und führt den HTML-Code und die gesamte Website aus.

info.php

<body> 

<h2><?php include 'travelTime.php'?></h2> 

</body> 

Diese travelTime.php ruft und erinnert an die Informationen, die sie auf der Webseite anzeigt. Ich frage mich, wie ich das ändern kann, damit ich das PHP-Skript etwa alle 10 Minuten aufrufen kann, damit die Reisezeit auf dem neuesten Stand bleibt und sich mit dem Verkehr ändert. Ich weiß, dass ich AJAX verwenden muss, aber ich bin verwirrt darüber, wie ich es nennen kann und diese Informationen zurückschicke, um von HTML-Code angezeigt zu werden.

Dank

+0

Mögliche Duplikat von [Wie Auto-Refresh einen Abschnitt einer Seite] (http://StackOverflow.com/questions/7660528/how-to-auto-refresh-a-section -of-a-page) – billynoah

Antwort

1

Verwendung jquery ajax() wie:

$(document).ready(function(){ 
    $.ajax({ 
     url: 'travelTime.php',       
     type: 'get',         
     data: { 
      var1 :val1, // key value pair of variable : value 
     }, 
     success: function(response){ 
      // Put the response to respective html 
      $('#distance').html(); 
     } 
    }); 
}); 

<h2 id="distance"></h2> 

Und es jedes X Minute anrufen:

setInterval(function() { 
    //your jQuery ajax code 
}, 1000 * 60 * X); // where X is your every X minutes 
+0

Muss ich die travelTime.php-Datei überhaupt bearbeiten? – user2817437

+0

Nein, es funktioniert einwandfrei –

+0

Es wird nicht auf meiner Webseite angezeigt. Wenn ich diese Änderungen mache, wird es einfach nicht angezeigt. Ich habe die Jquery Ajax in . – user2817437

0

wenn jquery dann nicht enthalten ist, werden Sie Fehler Verwendung erhalten Dies zuerst

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js"></script> 

und dann

<script> 
$(document).ready(function(){ 
    $.ajax({ 
     url: 'travelTime.php',       
     type: 'get',         
     data: {}, 
     success: function(response){ 
      console.log("Success Response",response); 
      $('#distance').html(); 
     },error:function(response){ 
      console.log("Error response",response); 
      console.log("Error response Text",response.responseText); 
     } 
    }); 
}); 
</script> 

Wenn Sie immer noch stecken blieben dann f12 klicken und auf der Konsole klicken und aktualisieren. Dann kommentieren Sie hier, was Sie bekommen

+0

Hallo, ich habe das, um "Success Response" in der Konsole zurückzugeben. Ich frage mich nur, wie ich diese Informationen in HTML anzeigen? Benenne ich die Variable #distance? Vielen Dank – user2817437

Verwandte Themen