Echtzeit aktualisieren, ohne die Seite aktualisieren
Ich würde gerne wissen, die Lösung auf, wie man meine PHP-Webseite/Tabelle aktualisiert sich automatisch in Echtzeit, ohne die Seite zu aktualisieren. Die Seite funktioniert einwandfrei.
Zum Beispiel, Wenn ein Benutzer sendet Daten dieser Seite wird sich automatisch aktualisieren die Anzeige der neuen Benutzer-Daten. Ich habe aus Forschung und es geht zu ajax. Ich habe versucht, einige versuche, aber es vermasselt die Seite. Jede Hilfe wäre herzlich willkommen.
<html>
<head>
<title>Seminar Overview</title>
</head>
<h1><center>Seminar Overview</center>
<body background="cloud.png">
<h4><p><a href="add.php">Create Seminar</a></p><h4>
<h4><p><a href="index.php">Admin Login</a></p><h4>
<center>
<?php
//DISABLE ERRORS
error_reporting(E_ERROR);
//ESTABLISH DATABASE SERVER CONNECTION
$con = mysql_connect ("194.81.104.22", "", "");
if (!$con) {
die("Can not connect: " . mysql_error());
}
//MYSQL QUERY & DATABASE SCHEMA
mysql_select_db("db12408543", $con);
$sql = "SELECT * FROM Register";
$seminaroverview = mysql_query($sql,$con);
$data = mysql_query($sql,$con);
//TABLE
echo "<table border=4 table width=1000>
<tr>
<th>Student ID</th>
<th>Name</th>
<th>Surname</th>
<th>Telephone</th>
<th>Address</th>
<th>Date of Registration</th>
<th>Email</th>
<th>Registered Seminar(s)</th>
</tr>";
//MYSQL DATA TO BE DISPLAYED THROUGH PHP TABLE
while($record = mysql_fetch_array($data)) {
echo "<tr>";
echo "<td>" . $record['idRegister'] . "</td>";
echo "<td>" . $record['Name'] . "</td>";
echo "<td>" . $record['Surname'] . "</td>";
echo "<td>" . $record['Telephone'] . "</td>";
echo "<td>" . $record['Address'] . "</td>";
echo "<td>" . $record['Dateofregistration'] . "</td>";
echo "<td>" . $record['email'] . "</td>";
echo "<td>" . $record['SeminarAttended'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
</center>
</body>
</html>
Echtzeit-Versuch
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(document).ready(function() {
setInterval(function() { //set Interval function to carry out same operation in the time specified
$('#main').load('seminar-overview.php #main > *'); //Reloads 'seminar-overview.php' table every 6 seconds as <div> tag is specified and closed after table
}, 6000);
});
</script>
- Es gibt keine javascript-oder ajax in diesem Beispiel. Wenn Sie erwarten, dass Menschen zu helfen, müssen Sie einige Beispiele, die Sie versucht haben
- AngularJS wird, ermöglichen die Nutzung von SPA, single-page-Anwendungen, und nicht verlangen, dass Sie die Seite aktualisieren, für Veränderungen. Es wird erreicht durch "2-Wege-data-binding" über die DOM-Hierarchie durch $digest.
- Sie können entweder die long polling Ajax oder verwenden Sie so etwas wie
Node.JS
um Echtzeit-updates - ^ natürlich werden Sie wollen, um die Ajax-Sache, es sei denn, Sie verschrotten möchten alle Ihre PHP-code und ganz von vorn beginnen mit Node.JS
- werfen Sie einen Blick auf das Beispiel, das ich gegeben habe
- Sie können die jquery-Funktion
$.post( url [, data ] [, success ] [, dataType ] );// this is a short hand ajax function
Und Sollten Sie Nicht Verwendenmysql_*
Funktionen in Ihrem PHP-Skript, wie Sie sind veraltet. - hat ein großer Punkt. Bitte verwenden Sie Bitte nicht die
mysql
Klasse! Es ist veraltet, für einen Grund, und ist unsicher. Schauen Sie in mysqli, wenn Sie möchten, halten Sie sich an einem ähnlichen format. Allerdings empfehle ich PDO. Ich benutze es seit über ein Jahr jetzt, und ich glaube, Sie finden es viel einfacher, und leistungsfähiger. - ja, ich sollte ändern Sie die mysql-Klasse, ich Schätze Ihre Beratung. Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK, also nachdem Sie füllen Sie die Tabelle für die erste Zeit benötigen Sie zum senden der Formular-Daten an ein anderes PHP-Seite per ajax-request. Das Beispiel js-code unten (mit jQuery) führt eine neue PHP-Seite mit POST-Variablen aus einem Formular mit dem Namen
#updatePage
. Dann wird der Inhalt der Tabelle auf den Seiten Ausgang. Hier ist es:Den script.php könnte wie folgt Aussehen:
Das ist die grundlegende Idee, und Sie sollten in der Lage sein den code so ändern, um diese Arbeit zu machen.
ajax
senden Sie eine Anfrage an ein anderes script, können wir nicht die Jquery-Funktion$.post( url [, data ] [, success ] [, dataType ] )
?$.post
ist "ein Kürzel Ajax-Funktion" und setzt einfach bis der ajax-Aufruf für Sie.