div-Tags nach DB Abfrage erzeugen

creativeheadz

Erfahrenes Mitglied
Hallo zusammen,

ich hoffe ich habe meinen Beitrag ins richtige Forum gepostet und auch für meinen Themen titel könnt ihr mir gerne die Rote Karte zeigen :P Nur es viel mir doch was schwer das in bündige Worte zu fassen.

Kurze Erläuterung

Auf meiner webseite rufe ich jede Sekunde Daten aus der Datenbank ab. Dies funktioniert auch ganz gut. Ich verwende dazu folgenden Code (JavaScript / HTML)

HTML:
<script type="text/javascript"  >
// globale Instanz von XMLHttpRequest
var xmlHttp = false;

// XMLHttpRequest-Instanz erstellen
// ... für Internet Explorer
try {
    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
    try {
        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        xmlHttp  = false;
    }
}
// ... für Mozilla, Opera und Safari
if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
}

loadauctionData();

setInterval("loadData()",1000);

function loadData()
{
 if (xmlHttp) {
     xmlHttp.open('GET', 'show.php?id=<?php echo $_GET["id"]; ?>', true);
     xmlHttp.onreadystatechange = function () {
         if (xmlHttp.readyState == 4) {
             document.getElementById("Titel").innerHTML = xmlHttp.responseText;
         }
		 
     };
     xmlHttp.send(null);
	 
 }
 
}
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td >Titel</td>
    <td ><div id="Titel"></div></td>
  </tr>
  <tr>
    <td >Datum</td>
    <td ></td>
  </tr>
  <tr>
    <td >Nachricht</td>
    <td ></td>
  </tr>
  <tr>
    <td >Username</td>
    <td ></td>
  </tr>
</table>



show.php

PHP:
<?php
include('config.php');

// Cachen verhindern
header("Expires: Sat, 05 Nov 2005 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");


$id=$_GET["id"];
$abfrage = "SELECT * FROM news Where id='$id'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)){

$Titel= $row->Titel;
$datum= $row->datum;
$username= $row->username;
$nachricht= $row->nachricht;
		
   }
echo "$Titel";
echo "$datum";
echo "$username";
echo "$nachricht";


?>

In der show.php rufe ich alle Daten ab, die per GET zu der entsprechenden id gehören.

Ich kann nun die Daten auf meiner index.php (die show.php wird ja durch das obene stehende Script hinzugeladen) mit einem div-tag plazieren...

Beispiel:
<div id="Titel"></div> = Ausgabe aller Daten aus der show.php


Mein Problem

in der show .php rufe ich jedoch mehrere Daten wie datum, Titel, Username, Nachricht ab. Wenn ich nun den div -tag nutze gebe ich alle diese Daten an einer Position meiner index.php aus. Jedoch nicht an den dafür vorgesehenen plätzen.

Bestimmt gibt es die Möglichkeit auch bei der Ausgabe alle Daten einen eigenen Div-tag zu erzeugen den ich dann beliebig plazieren kann.

<div id="datum"></div>
<div id="titel"></div>
<div id="username"></div>
<div id="nachricht"></div>

Ich hoffe man kann daraus verstehen, was mein Problem ist.Wenn nicht versuche ich es gerne noch anders zu erklären.

Danke im vorraus für alle eingehenden Bemühungen.

lg

daniel
 
Weil ich nicht weiss wie ich die Daten einzelenen Div Container zuweise.
Ich weiss zwar wo der eine div Tag erzeugt wird aber in diesem wird ja dann einfach alles ausgegeben. Wie kann ich das ganze splitten?
 
Hm, damit komme ich irgendwie nicht so wirklich zurecht. Gibt es noch andere Möglichkeiten bei denen nicht extra Formate notwendig sind?
 
Ach misst, das ich nicht alleine darauf komme!! Sauber! Das klappt. Das man immer son Brett vorm Kopf haben muss!

Dank jedenfalls für den Denkanstoß ;)

Hm sry, aber ab da doch nochmal eine Frage:

Ich versuche nun mit folgendem Code String der durch <div id=\"data\"></div> ausgegeben wird, zu trennen und in Variablen zu packen.,
Das Problem ist das der ja jetzt den "Text " <div id=\"data\"></div> nach dem / trennt dass heisst er gibt mir in einer Variable
Code:
$titel =  <div id=\"data\"><
aus
und in
Code:
$datum = /div>

PHP:
 $datastring = "<div id=\"data\"></div>";
list ($titel, $datum, $username, $nachricht) = split('[/]', $datastring);

Wie kann ich das ganze geschickter lösen?
 
Warum hast Du denn jetzt den HTML-Code mit da drin. Setze die DIVs von vorne herein in das Dokument und hole die reinen Daten vom Server ab. Wie Du es vorher mit dem einzelnen DIV auch gemacht hast.

LG
 
:confused:

Das Beispiel hast Du doch in Deinem eigenen Code. Lass das PHP-Script die reinen Daten durch ein Trennzeichen getrennt ausgeben, zerleg das im JS und aktualisiere damit halt 4 DIVs, statt nur eins.

LG
 
Zurück