mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 22:24 Benutzername: Passwort: Auto-Login

Thema: In DIV Inhalte aus HTML-Datei laden vom 29.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> In DIV Inhalte aus HTML-Datei laden
Autor Nachricht
mojo84
Threadersteller

Dabei seit: 29.06.2007
Ort: münchen
Alter: -
Geschlecht: Weiblich
Verfasst Fr 29.06.2007 13:45
Titel

In DIV Inhalte aus HTML-Datei laden

Antworten mit Zitat Zum Seitenanfang

Hallo ihr,

suche nun schon ewig nach einem FUNKTIONIERENDEN Beispiel für folgendes:

Habe eine Seite (index.php) die unter anderem ein DIV enthält. Und ich hab eine Seite (artikel_newsletter.html) auf der, in DIVs unterteilt, mehrere News stehen. Nun sollte jeweils ein Artikel aus der artikel_newsletter.html Seite in das DIV auf der Hauptseite geladen werden. Und weiters sollte der Artikel alle 10 sekunden durch einen anderen ersetzt werden. Womit lässt sich das am Besten realisieren? Javascript oder PHP? Es sollen auf keinen Fall IFrames benutzt werden.
Habe leider kein FUNKTIONIERENDES Script finden können!

Wäre super wenn ihr mir helfen könntet.
greez *mojo*


Zuletzt bearbeitet von mojo84 am Fr 29.06.2007 13:45, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Raumwurm

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 29.06.2007 21:51
Titel

Antworten mit Zitat Zum Seitenanfang

Hi, ich bin weißgott nicht der php-Held aber so ging es z.B:

Index.php:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Artikel exploden</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?
   $alles = file_get_contents("artikel_newsletter.html");
   $body = explode('<body>', $alles);
   $artikel = explode('<div class="artikel">', $body[1]);
   $art = array_shift($artikel);
   $artarray = array();
   foreach ($artikel as $a) {
      $b = strip_tags($a);
      array_push($artarray, "'".trim($b)."'");
   }
   $jstring = join(',', $artarray );
?>
<script type="text/javascript">

   var artikel = new Array(<?=$jstring?>);
   
   function randomNr(count)
   {
      var randomNr = Math.floor(1+(count)*(Math.random()));
      return randomNr;
   }
   
   function pushNews()
   {
      dropZone = document.getElementById('dropzone');
      newArtNr = randomNr(artikel.length-1);
      newArtikel = artikel[newArtNr];
      dropZone.innerHTML = newArtNr + ' | ' + newArtikel;
   }
   
   window.onload = function()
   {
   var interval = window.setInterval("pushNews()", 1000);
   }
</script>
</head>

<body>
<div id="dropzone">
   hier artikel
</div>
</body>
</html>


artikel_newsletter.html:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Artikel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<div class="artikel">
   artikel 1
</div>
<div class="artikel">
   artikel 2
</div>
<div class="artikel">
   artikel 3
</div>
<div class="artikel">
   artikel 4
</div>
<div class="artikel">
   artikel 5
</div>
<div class="artikel">
   artikel 6
</div>
<div class="artikel">
   artikel 7
</div>
</body>
</html>


Aber vielleicht findet sich ja noch wer, der den php-krams
aufräumt *ha ha* Lächel
  View user's profile Private Nachricht senden
Anzeige
Anzeige
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Sa 30.06.2007 02:04
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Und weiters sollte der Artikel alle 10 sekunden durch einen anderen ersetzt werden. Womit lässt sich das am Besten realisieren? Javascript oder PHP?

Auf JavaScript würde ich in diesem Fall verzichten. Nicht jeder User kann oder will JS einsetzen.
Daher solltest du den Reload nicht mit JS umsetzen.
PHP kommt allerdings auch nicht in Frage. Der Client muß die Seite anfordern. Du kannst nicht mit PHP alle paar Sekunden ein neues Dokument zum Client schicken.

Ich würde den Reload mit Hilfe eines Metatags realisieren.
Dazu nimmst den Meta-Refresh.

Und noch ein paar kleine Anmerkungen zum Code von Raumwurm:
Code:
<?
   $alles = file_get_contents("artikel_newsletter.html");

Den PHP-Bereich sollte man immer mit <?php beginnen und nicht einfach nur mit <?.
Das funktioniert nämlich nur dann, wenn die Short-Open-Tags in der php.ini aktiviert wurden.
Das ist zwar oftmals der Fall, aber man kann sich nicht drauf verlassen, daß dies auf jedem Server funktioniert.
Also lieber die längere Version nehmen. Das funktioniert immer. Damit ist man dann auf der sicheren Seite.

Ähnliches hier:
Code:
var artikel = new Array(<?=$jstring?>);

Diese Syntax kann man nutzen, wenn man den Inhalt nur einer Variablen ausgeben will.
Das nutze ich auch öfters, aber eigentlich nur zum Testen auf meinem eigenen Server.
Man sollte lieber die längere Schreibweise einsetzen. So ist es sicher, daß es auf jedem Server läuft:
Code:
var artikel = new Array(<?php echo $jstring; ?>);


Und außerdem würde ich halt kein JS einsetzen und die ganze Sache serverseitig lösen.
Dann funktioniert das auch bei den Usern ohne JS.
Ich würde den Inhalt der artikel_newsletter.html also auch in einer Variablen ablegen und den Krams dann zerlegen.
Ob man die Funktion von Raumwurm so nutzen kann, ist die Frage.
Da nicht verraten wurde, wie die artikel_newsletter.html denn genau aufgebaut ist, kann ich dazu nichts sagen.
Raumwurm mußte da ja raten...
Poste mal den Code bzw. die Struktur dieser Datei.

Wenn man dann die einzelnen Artikel in einem Array hat, läßt man sich eine Zufallszahl (Ganzzahl) zwischen 0 und der Anzahl der Arrayelemente ausgeben.
Damit kann man dann auf ein zufälliges Element im Array zugreifen und den Inhalt in das DIV schreiben.
Bei jedem Reload der Seite (über den Meta-Refresh) wird dann ein anderes zufälliges Array-Element ausgewählt und in das DIV geschrieben.
Raumwurm hat sich da viel zu viel Mühe gemacht, um dies mit JS zu lösen.
Wenn man das alles serverseitig macht, funktioniert es bei allen Usern.
  View user's profile Private Nachricht senden
Raumwurm

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 30.06.2007 09:13
Titel

Antworten mit Zitat Zum Seitenanfang

Hast schon Recht Rob, nur finde ich ein meta-refresh
als User schon etwas lästig - wenn denn nur eine News
aktualisiert werden soll. Imho ists da besser man bietet
die Javascript-Lösung an und als Fallback eine meta-
refresh variante (bzw. genau andersrum). Immerhin ist
der Großteil der User mit JavaScript unterwegs und
denen dann einen 10sekündigen Refresh wegen den
wenigen Nicht-Javascriptlern aufzuhalsen geht am Ziel
vorbei. Aber das soll jeder machen wie er will.


Zuletzt bearbeitet von Raumwurm am Sa 30.06.2007 09:14, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Johnobo

Dabei seit: 28.12.2005
Ort: bei Berlin
Alter: -
Geschlecht: Männlich
Verfasst Sa 30.06.2007 11:06
Titel

Antworten mit Zitat Zum Seitenanfang

stichwort ajax.request();

nimm die php-file die raumwurm beschreibt,
und villeicht noch auf ne getvariable reagiert.

bastel dir ne index.php die in deinen div einfach
die auslesende phpfile includiert, ich nenn sie
mal request.php. über getvariablen kannst du dem
script übermittel wleche artikel du möchtes, ob
zufall oder net und so nin zeug, und mit ajax kloppst
du einfach einen timer rein und nin request an
die request.php .

das hätte den vorteil, das auch leute die kein js
aktiv haben immerhin noch die ersten paar artikel
sehen und nicht ganz ausgeschlossen werden und
ajax is auch super weil du nicht die siete ansich
neu laden musst.

schau mal hier: script.aculo.us


mfg.

ps.: wenn dir alles nicht zu sagt greif zu flash...


Zuletzt bearbeitet von Johnobo am Sa 30.06.2007 11:07, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
mojo84
Threadersteller

Dabei seit: 29.06.2007
Ort: münchen
Alter: -
Geschlecht: Weiblich
Verfasst Mo 02.07.2007 08:41
Titel

Antworten mit Zitat Zum Seitenanfang

Vielen vielen Dank für die verschiedenen Lösungsvorschläge.
Ich werde mal bisschen damit rumprobieren. Leider bin ich nicht wirklich ein Programmier-Fex.
Aber probieren geht über studieren Lächel

Danke nochmals!
  View user's profile Private Nachricht senden
 
Ähnliche Themen in html datei inhalte automatisch löschen
inhalte laden
Inhalte in Ap-Divs laden
Beste Möglichkeit Inhalte zu laden ?!
Funktion (neueTXT-Datei laden) aus TXT-Datei aufrufen...
Phase 5 - Css Inhalte in HTML nicht sichbar
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.