Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 30
Like Tree1Likes

Thema: Einzelnen <div> alle 5 Sekunden refreshen

  1. #1
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    Einzelnen <div> alle 5 Sekunden refreshen



    Liebe Mituser!

    Habe von JavaScript keine Ahnung und bin auch eher an PHP und MySQL dran. Für eine Chatanwendung möchte ich nur einen Division <div> alle 5 Sekunden refreshen. Dazu habe ich im div-Tag:

    Code:
    <div id="ausgabebereich" onLoad="timedRefresh(5000);">
    und die Funktion

    Code:
    function timedRefresh(timeoutPeriod) {
        setTimeout("location.reload(true);",timeoutPeriod);
    }
    im head des html-Dokumentes. Es funktioniert aber nicht!

    Vielen Dank für eure wertvollen Tipps!
    euer
    Streethawk68

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.816

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Soll wirklich nur das div refresht werden oder die gesamte Seite? Dein Text läßt auf das erste schließen, dein Code auf das zweite.
    Sollte es das erste sein würde ich das mit einem wiederholende Ajax Request machen. Wie das mit jQuery ganz schön geht sieht man hier: [jQuery] Optimaler Ajax-Request

  3. #3
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Ich möchte nur den <div> refreshen. Dieser hat von der Chat-Gegenseite neue Inhalte aus einer MySQL-Datenbank (Chatbeiträge) bekommen und soll sie nun darstellen.



    Vielen Dank für deine schnelle Antwort!

    dein
    Streethawk68

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.816

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    Ich möchte nur den <div> refreshen. Dieser hat von der Chat-Gegenseite neue Inhalte aus einer MySQL-Datenbank (Chatbeiträge) bekommen und soll sie nun darstellen.



    Vielen Dank für deine schnelle Antwort!
    OK. Antwort hast du schon, siehe der Link.

  5. #5
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    jQuery...
    Muss ich da extra vorher was installieren? Oder verstehen die Browser und der Apache-Server das sowieso?

    Danke!
    Streethawk68

  6. #6
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Code:
    function maindatumzeit() {
     jQuery.ajax ({
      url: 'meinscript',
      data: 'parameter=val',
      type: 'POST',
      cache: false,
      success: function (data) {
       jQuery('#maindatumzeit').html(data);
       window.setTimeout(function () {maindatumzeit();},5000);
      },
      error: function () {
       window.setTimeout(function () {maindatumzeit();},10000);
      }
     });
    }
    Ich habe diesen Code in mein PHP-Skript implementiert. Den URL habe ich angepasst. Es funktioniert aber nicht. Wo wird die Funktion aufgerufen?
    Gruß
    Streethawk68

  7. #7
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.816

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    jQuery...
    Muss ich da extra vorher was installieren? Oder verstehen die Browser und der Apache-Server das sowieso?
    jQuery ist ein Javascript Framework/Library das/die eingebunden/inkludiert werden muss.
    Man muss aber jQuery nicht verwenden, es gibt noch viele andere Frameworks.
    Man kann Ajax Requests auch ganz ohne Framework "zu Fuß" machen.
    Meine persönliche Erfahrung ist, dass man - einmal mit einem Framework angefangen - sowieso früher oder später davon noch mehr Funktionen nutzen wird.
    Deine Entscheidung. Sag einfach, wie du es machen willst, auf jeden Fall ist es nicht mit 3 Zeilen Code getan, wie du angefangen hast.

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    Ich habe diesen Code in mein PHP-Skript implementiert. Den URL habe ich angepasst. Es funktioniert aber nicht. Wo wird die Funktion aufgerufen?
    Wie gesagt. Bei diesem Beispiel muss vorher jQuery inkludiert werden. Muss man aber nicht so machen.
    Und der Erstaufruf lautet dann einfach maindatumzeit(); am Ende des <script> Abschnitts oder per jQuery document.ready irgendwo im JS Code.
    Geändert von mikdoe (11-01-2013 um 20:08 Uhr)

  8. #8
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Hallo!

    Mein zuletzt angegebenes Beispiel funktioniert also nur mit vorheriger Einbindung von jQuery. Okay.

    Was ich machen will: Die Chat-Gegenseite soll nicht klicken müssen: 'Ist vielleicht eine Antwort da?', sondern die Antwort soll auf der Gegenseite 'von selbst' erscheinen.

    Was ist denn einfacher: Jetzt jQuery einbinden (Wie geht das?) und die obige Lösung verwenden?

    Oder eine andere Lösung ohne jQuery? Wo finde ich die?

    Herzlichst und vielen Dank

    Streethawk68

  9. #9
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.816

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    Mein zuletzt angegebenes Beispiel funktioniert also nur mit vorheriger Einbindung von jQuery. Okay.
    Wenn du mein Beispiel meinst, ja.

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    Was ich machen will: Die Chat-Gegenseite soll nicht klicken müssen: 'Ist vielleicht eine Antwort da?', sondern die Antwort soll auf der Gegenseite 'von selbst' erscheinen.
    Ja, mein Beispiel ist ein wiederholender Ajax Request mit dem Framework jQuery. Das tut genau das.

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    Was ist denn einfacher: Jetzt jQuery einbinden (Wie geht das?) und die obige Lösung verwenden?
    Schau dir auf jquery.com einfach mal an, was man damit machen kann. Wenn du denkst, das ein oder andere könnte für dein Projekt später mal interessant sein lohnt sich die Überlegung, jetzt mit jQuery anzufangen.

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    Oder eine andere Lösung ohne jQuery? Wo finde ich die?
    Such dir im Netz ein Tut zum Thema Ajax ohne Framework, welches dir gefällt.

  10. #10
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Code:
    function maindatumzeit() {
     jQuery.ajax ({
      url: 'http://www.kiXXXXXXXing.de/chat/chat_main.php',
      data: 'parameter=val',
      type: 'POST',
      cache: false,
      success: function (data) {
       jQuery('#maindatumzeit').html(data);
       window.setTimeout(function () {maindatumzeit();},5000);
      },
      error: function () {
       window.setTimeout(function () {maindatumzeit();},10000);
      }
     });
    }
    
    maindatumzeit();
    So sieht das jetzt aus. Ich habe eine Datei jquery-1.8.3.min.js ins gleiche Verzeichnis des Webservers geladen, wo auch das PHP-Skipt liegt. Bin ich nah dran? Oder noch weit in der Wüste?

    Gruß
    Streethawk68

  11. #11
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.816

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Zitat Zitat von Streethawk68 Beitrag anzeigen
    So sieht das jetzt aus. Ich habe eine Datei jquery-1.8.3.min.js ins gleiche Verzeichnis des Webservers geladen, wo auch das PHP-Skipt liegt. Bin ich nah dran? Oder noch weit in der Wüste?
    Ganz heiß!
    Jetzt noch im <head> ein <script type="text/javascript" src="jquery-1.8.3.min.js"></script> und damit ist es inkludiert.
    Und im Code noch das #maindatumzeit ersetzen durch den Namen des divs, um das es geht. Also nur in der Zeile jQuery('#maindatumzeit').html, weil dort der neue Inhalt in das div gefeuert wird. Die Namensgleichheit mit der function hatte mit dem Zusammenhang im Beispiel zu tun.
    Streethawk68 likes this.

  12. #12
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Es freut mich extrem, dass ich nah dran bin!

    Ich habe das jetzt alles übernommen. Allerdings enthält mein PHP-Skript bereits (schon vorher also) drei JavaScript-Funktionen. Und zwar diese:

    Code:
    function send()
    {
    	if(document.f.nick.value != "" &&
    		document.f.beitrag.value !="")
    		document.f.submit();
    }
    
    function reload()
    {
    	window.location.href = "chat_main.php";
    }
    
    function moveWin()
    {  
    	var Ausgabebereich = document.getElementById("ausgabebereich");
    	
    	Ausgabebereich.scrollTop = Ausgabebereich.scrollHeight;
    }

    Erste: Zum Senden des Chat-Beitrages

    Zweite: Zum Laden des Chat-Beitrages auf der Gegenseite

    Dritte: Damit der <div> immer runtergescrollt ist

    Diese Funktionen funktionieren nun nicht mehr.

    Hast du noch Ideen?

    Und schon mal vielen, vielen Dank!

    Streethawk68

    P.S.: Mir fällt ein: Die "Chat laden"-Funktion kann ja entfallen. Ich habe sie zwischenzeitlich herausgenommen. Dennoch funktioniert die "Chat senden"-Funktion nicht. Und die braucht es ja nach wie vor.
    P.P.S.: In dem Moment, wo man die jQuery-Inklusion aus dem Skript-Tag herausnimmt, funktionieren die alten Funktionen wieder. Es müsste einen Weg geben, dass beides funktioniert.

    P.P.P.S.: Habe mir jetzt so zu helfen versucht:

    Die alten Funktionen 'gerahmt' von den Tags:
    Code:
    <script type="text/javascript">
    
    </script>
    Und die neuen 'gerahmt' von den Tags:
    Code:
    <script type="text/javascript" src="jquery-1.8.3.min.js">
    
    </script>
    Hat aber leider nichts gebracht.
    Geändert von Streethawk68 (11-01-2013 um 21:51 Uhr)

  13. #13
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Das
    Code:
    <script type="text/javascript" src="jquery-1.8.3.min.js">
    
    </script>
    darf/soll keinen Code enthalten, da der Code in einem <script> nicht ausgeführt wird, wenn es ein src-Attribut hat.

  14. #14
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Verehrte Mituser!

    Auch diesen Tipp habe ich nun umgesetzt. Der Code scheint nun wohl wunschgemäß ausgeführt zu werden.

    Aber der Browser (Mozilla Firefox 18.0) reagiert inadäquat: fragt Masterpasswort nicht mehr ab und Fenster lässt sich nur schleppend in der Größe verändern.

    Außerdem wird der zu refreshende <div> in sich selbst geladen. Außerdem kann man ins Formular keine Eingaben mehr machen.

    Hier ein entsprechender Screenshot:



    Vielleicht ist es günstig, wenn ich euch das ganze PHP-Skript zeige. Dazu habe ich URLs und Passwörter und Datenbankzugangsdaten herausgenommen. Hier das Skript:

    Code:
    <?php
    header("Content-Type: text/html; charset=utf-8");
    include "chat_check.php";
    ?>
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="chat.css">
    
    <script type="text/javascript" src="jquery-1.8.3.min.js">
    </script>
    
    <script type="text/javascript">
    /* Beitrag senden, falls Name und Beitrag vorhanden */
    function send()
    {
    	if(document.f.nick.value != "" &&
    		document.f.beitrag.value !="")
    		document.f.submit();
    }
    
    function reload()
    {
    	window.location.href = "chat_main.php";
    }
    
    function moveWin()
    {  
    	var Ausgabebereich = document.getElementById("ausgabebereich");
    	
    	Ausgabebereich.scrollTop = Ausgabebereich.scrollHeight;
    }
    
    function maindatumzeit() {
     jQuery.ajax ({
      url: 'http://www.kiXXXXXXXing.de/chat/chat_main.php',
      data: 'parameter=val',
      type: 'POST',
      cache: false,
      success: function (data) {
       jQuery('#ausgabebereich').html(data);
       window.setTimeout(function () {maindatumzeit();},5000);
      },
      error: function () {
       window.setTimeout(function () {maindatumzeit();},10000);
      }
     });
    }
    
    maindatumzeit();
    </script>
    </head>
    
    <body onLoad="moveWin();">
    
    <div id="eingabebereich">
    <?php
    	$seid = session_id();
    	
    	/* Anhängen des neuen Textes, falls vorhanden */
    	if(isset($_POST["beitrag"]))
    	{
    		// MySQL Zugangsdaten
    		$database="XXXXXXX";
    		$host="XXXXXXX";
    		$user="XXXXXXX";
    		$password="XXXXXXX";
    		$table="XXXXXXX";
    
    		// Verbindung zur Datenbank herstellen
    		mysql_connect($host,$user,$password);
    		mysql_select_db($database) or die( "Unable to select database");
    		
    		mysql_query("insert daten (nick, beitrag, sessid) values ('" . $_POST["nick"] . "', '" . $_POST["beitrag"] . "', '$seid')");
    		$nickold = $_POST["nick"];
    					
    		/* Chat-Anzeige aktualisieren */
    	    echo "<script type='text/javascript'>
    			reload();</script>";
    	}
    
    	// MySQL Zugangsdaten ZUM NICK_AUSLESEN
    	$database="XXXXXXX";
    	$host="XXXXXXX";
    	$user="XXXXXXX";
    	$password="XXXXXXX";
    	$table="XXXXXXX";
    	
    	// Verbindung zur Datenbank herstellen
    	mysql_connect($host,$user,$password);
    	mysql_select_db($database) or die( "Unable to select database");
    	
    	$res = mysql_query("select nick from $table where sessid = '$seid'");
    		
    	while($dsatz = mysql_fetch_assoc($res))
    	{
    		$nickfix = $dsatz["nick"];
    	}
    	
    	echo "<form name='f' action='chat_main.php' method='post' accept-charset='utf-8'>";
    	echo "<h5><i>Anmerkung:</i> Sie können Ihren Nicknamen, der im Chatverlauf angezeigt werden soll,<br />
    	frei wählen und jederzeit ändern; er muss nicht mit Ihrem Anmelde-Benutzernamen<br />identisch sein. 
    	<i>Viel Spaß beim Chatten!</i></h5>";
    	echo "<table>";
    		echo "<tr>";
    			echo "<td>Ihr Nickname:</td>";
    			echo "<td><input name='nick' value='$nickfix' size='20' /></td>";
    			echo "<td align='center'>";
    				echo "<a href='javascript:reload();'>Chat laden</a>";
    			echo "</td>";
    			echo "<td align='right'>";
    				echo "<a href='javascript:send();'>Senden</a>";
    			echo "</td>";
    		echo "</tr>";
    	
    		echo "<tr>";
    			echo "<td valign='top'>Ihr Beitrag:</td>";
    			echo "<td colspan='3'>";
    				echo "<textarea cols='50' rows='2' name='beitrag'></textarea>";
    			echo "</td>";
    		echo "</tr>";
    	echo "</table>";
    	echo "</form>";
    ?>
    
    </div>
    
    <div id="ausgabebereich">
    
    <h3>Chat</h3>
    	
    <?php
    	/* Datei mit Chat-Daten auslesen */
    		
    		// MySQL Zugangsdaten
    		$database="XXXXXXX";
    		$host="XXXXXXX";
    		$user="XXXXXXX";
    		$password="XXXXXXX";
    		$table="XXXXXXX";
    
    		// Verbindung zur Datenbank herstellen
    		mysql_connect($host,$user,$password);
    		mysql_select_db($database) or die( "Unable to select database");
    		
    		$res = mysql_query("select * from daten order by zeit");
    		
    		if(mysql_num_rows($res)>0)
    		{
    			echo "<table>"
    				. "<tr><td><b>Zeit</b></td>"
    				. "<td><b>Name</b></td>"
    				. "<td><b>Beitrag</b></td></tr>";
    			
    			while($dsatz = mysql_fetch_assoc($res))
    			{
    				$z = $dsatz["zeit"];
    				$zs = substr($z, 8, 2) . "." . substr($z, 5, 2) . "."
    					. substr($z, 0, 4) . " " . substr($z, 11);
    				echo "<tr>"
    					. "<td>$zs</td>"
    					. "<td>" . $dsatz["nick"] . "</td>"
    					. "<td>" . $dsatz["beitrag"] . "</td>"
    					. "</tr>";
    			}
    			
    			echo "</table>";
    		}
    		
    	?>
    
    </div>
    <br />
    <br />
    Aus Sicherheitsgründen nach Beendigung des Chats bitte ausloggen<br />
    <a href='chat_login.php'>Logout</a><br />
    und Browser(-fenster) schließen <br />
    
    </body>
    </html>
    Ich hoffe, dass ich euch nichts aufhalse und dass der Fehler recht simpel zu entdecken ist. Während ich auf eure Antwort warte, probiere ich selbstverständlich fleißig weiter.

    Herzlichst
    euer
    Streethawk68

  15. #15
    Streethawk68 ist offline Jungspund
    registriert
    10-08-2012
    Ort
    Regierungsbezirk Köln
    Beiträge
    16

    AW: Einzelnen <div> alle 5 Sekunden refreshen

    Hier nochmals der Screenshot:

    Screenshot-refresh01-PNtMbLVH.1357977186.JPG

    Danke!
    Streethawk68

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Variable alle 17 Sekunden erhöhen
    Von Nimmo Gogh im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 24-07-2010, 14:13
  2. Seitenfarbe alle 3 Sekunden ändern.
    Von Dudo im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 08-07-2010, 16:33
  3. refresh alle 5 sekunden mit button ein- und ausschalten
    Von mruniversum im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 22-01-2008, 12:01
  4. javascript funktion alle x sekunden aufrufen
    Von cyberbill im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 09-05-2007, 17:48
  5. alle x sekunden anderer code
    Von .dominik. im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 11-04-2007, 20:04

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •