Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellen dynamisch erstellt mit CSS
ChiLLinG
25.03.2002, 10:18
Hi,
ich habe hier eine Tabelle die dynamisch von einer Datenbank erstellt wird. ich kann an dem Code der von der Datenbank ausgegeben nichts verändern, bzw. z.B. ein neues Feld in der Datenbank anlegen.
ICh will, dass die Tabelle mit CSS gestaltet wird. Das habe ich auch schon geschafft, jetzt soll aber jede zweite Zeile der Tabelle eine andere Farbe haben, bzw. die Farbe soll immer wechseln:
1 zeile: rot
2 zeile: grün
3 zeile: rot
4 zeile: grün
um eine besssere Übersicht zu haben !
Am besten wäre es, wenn ich das irgendwie in der CSS Datei festlegen könnte, denn mit JS und auf andere arten hat es nicht wünschenswert gut funktioniert !
Thanx
mit CSS wirste da auch ned weit kommen, wenn du ned schöne class-tags setzen kannst..
was haste du überhaupt für zugriffsmöglichkeiten? Ich werd irgendwie ned schlau draus.. (an der Tabelle kannste nix ändern, aber JS und CS usw.. kannste noch hinzufügen??)
so long
cYrus
Dominic Suter
25.03.2002, 11:07
Soweit ich dich verstanden habe, kannst du an der Datenbank selbst nichts ändern, richtig?
Wird die Tabelle aber auch schon in der Datenbank gespeichert, oder per echo erzeugt und anschliessend wird der Inhalt der Datenbank darin angezeigt?
Falls das der Fall ist, ist eine farbliche Änderung kein grosses Problem, falls du diesem Quelltext verändern willst/kannst.
In der erst genannten Version sehe ich keine grossen Chancen (ausser einem aufwendigen Skript)
Aber eben, definiere uns den Aufbau bzw. das Problem ein wenig besser, damit wir dir auch helfen können.
ChiLLinG
25.03.2002, 15:28
Sorry, schlecht ausgedrückt :)
Also ICh habe eine einzeilige mehrspaltige Tabelle mit den jéweiligen Befehlen belegt, die die Daten einer Filemakerdatenbank in die jeweiligen Zellen ausgeben.
An der Datenbank selbst kann ich nichts ändern !
ICh habe das was ich erreichen will mit einem Javascript auch schon hinbekommen, nur wurde dies nicht von NEtscape und nur von IE 5.0 richtig ausgegeben. ICh bräuchte also eine einfachere, bessere Lösung :)
Thanx
maulwurf
25.03.2002, 16:00
hiho
also wenn du selber definierst, wie die daten in der tabelle angeordnet werden
Also ICh habe eine einzeilige mehrspaltige Tabelle mit den jéweiligen Befehlen belegt, die die Daten einer Filemakerdatenbank in die jeweiligen Zellen ausgeben.
kannst du dann nicht einfach ne if-abfrage einbauen zum ´spalten´? was weiß ich... baust n kleines script drumrum, daß die einträge numeriert und machst dann if $wert %2 oder wie das auch geht ...?! und dann machste für match = grün und else = rot... oda so
oda hab ich das falsch verstanden? *programmierlegastheniker* :rolleyes:
cya
wie wird denn die datenbank abgefragt ?
jeh nachdem was du nimmst kannst du doch dort schon
einfuegen das eine zeile rot die andere gruen gemacht
wird bei der ausgabe damit brauchst du die datenbank
nicht aendern und ist auch super einfach.
waer noch hilfreich wenn du postest was fuer eine
datenbank (filemaker sagt mir nix) und womit/wie
du die abrufst.
cu l8er
also.. sowas in der db direkt abzulegen ist nicht sinnvoll h3r3tic ... wenn du nämlich mal nen datensatz mitten drin rauslöscht, müsstest du die ganze datenbank updaten ... also nicht wirklich gut die lösung ..
rein von der programmiersyntax her würde es logisch so aussehen:
du setzt initial einen wert für den hintergrund, dann springst du in eine schleife, die den wert des hintergrundes bei jedem durchlaufen abfragt und wenn der hintergrund am beginn der schleife wert1 (z.b. grün) entspricht, ändere ihn auf wert2 (z.b. rot) und anders rum ...
dann beginne mit dem output
der wert von hintergrund ist am beginn der schleife z.b. von grün auf rot gesetzt worden...
die schleife wird ein 2tes mal ausgeführt, mit der 2ten zeile die auszugeben ist .. (je nachdem wieviele datasets du hast ...)
hintergrund ist nun: rot ... weil ja vorhin geändert... die schleife ändert ihn nun automatisch auf grün ..und der output ist grün ...
und weiter mit durchlauf 3... grün ist ausgangsfarbe -- wird zu rot ... etc.... und so weiter und so fort ... ;-)
@ bauchi
ich meine ja auch keine xtra tabelle in der datenbank oder so
sondern bei php z.b.
liest er doch alles zeilenweise mit while aus und dazwischen
kommt dann nen script was eine zeile gruen eine rot macht
quasi so wie du das umfangreich beschrieben hast
hab ich mich wohl falsch ausgedrueckt :]
joar ... ;-)
syntax:
$hintergrund="#ff0000";
while ($blahblubb=SQLVERBDINUNG/ERGEBNISS) {
if ($hintergrund=="#ff0000") {
$hintergrund="#00ff00";
}
else {
$hintergrund="#ff0000";
}
echo "<td backgroundcolordingsbums=\"$hintergrund\">$blahblubb</td>";
}
maulwurf
25.03.2002, 18:32
.... aba meine idee war doch auch nicht *ganz* verkehrt..... oda? ;(
cya ;)
jo mauli deine % 2 haben wir auch im GBB verwendet :D ich find die persönlich schöner als ein if auf den Inhalt einer Variable..
greez
cYrus
ChiLLinG
25.03.2002, 19:46
so...:
Die Datenbank ist eine Filemaker Datenbank www.filemaker.com oder ...de ! :=) sehr unbekannt !
Ausgabe sieht wie folgt aus:
Ich habe eine einzeilig mehrspaltige Tabelle, dort wird der NAme der Spalte der Datenbank angegeben, dessen Inhalt ich ausgeben will .. dann gibts bei Filemaker nen BEfehl, dass er solange diese Tabelle ausgibt, bis er alle Einträge der Datenbank ausgegeben hat ! Ich habe nur in Filemaker nicht die möglichkeit zu überprüfen ob eine Variable eine gerade zahl oder eine ungerade zahl ist, bzw. ob sie durch zwei teilbar ist oder nicht ! Das wäre ja nötig um jede zweite Zeile anders zu "färben"
deshlab habe ich mir gedacht, es wäre cool wenn ich das nur in einer css Datei programmieren müsste :)
Bin aber auch davon ausgegangen dass das nicht funktioniert ! :)
Ich habe auch probiert einfach im html code eine variable zu benutzen mit der ich dann die css-class belege, jenachdem ob die zeile durch zwei teilbar ist oder nicht .. das halt mit javascript aber das geht offensichtlich auch nicht !
Weiter binich noch nich gekommen !
Thanx
Hi @ll
da es sich um 4 Farben handelt, wirst mit %2 ned viel reissen.
------------------------------
Da du sicher eine Schleife hast, die die einzelnen Werte aus deiner Datenbank liesst, lässt noch eine Lauf-Variable mitlaufen.
dann machst einen Switch der Modolo der Farb-Anz auf die Lauf-Variable.
wo du einer Farb-Variable einen Wert zuweisst.
die dann im <Td> bzw. <TR> Tag ausgibst.
versuche mal das:
<?
$farb_anz = 4;
$lauf = 0;
while ($lauf < 10)
{
switch ($lauf%$farb_anz)
{
case 0:
$farbe = "0";
break;
case 1:
$farbe = "1";
break;
case 2:
$farbe = "2";
break;
case 3:
$farbe = "3";
break;
default:
$farbe = "??";
break;
}
echo $farbe." - ";
$lauf++;
}
?>
eine schönere Lösung ist die:
$lauf = 0;
$farbe = array ("0","1","2","3");
while ($lauf < 10)
{
echo $farbe[$lauf%count($farbe)]." - ";
$lauf++;
}
im Farbe definierst du die Farben, soviele du willst.
dann brauchst nur mehr in der Schleife eine Laufende-Variable.
Die eine Echo-Zeile macht dann den Rest.
Hoffe konnte herlfen
öööhmmm... in welcher sprache erzeugst du eigentlich die ausgabe... benutzt du so ein filemaker spezifisches tool, perl, asp, php oder sonst irgendeine programmiersprache ..??? ich hab nämlich nichts davon gesehn in dem thread oder hab ich was überlesen??
@ nev
es sind doch nur 2 farben wie kommst du denn auf 4 ?
@ bauchi
wuerde auch gerne wissen womit er das abruft aber irgendwie
will er das nicht verraten :D
cu l8er
Hi
@h3r3tic
UPPS
Irgendwie hab ich nur gelesen:
Zeile 1
Zeile 2
Zeile 3
Zeile 4
Nichts für Ungut, die Lösung passt trotzdem
Sorry, wie gesagt verlesen
eeerm .. mal was anderes...
wie hast du (nev) den text so schön farbig formatiert hinbekommen ??
von hand oder gibts hier im board ne fertige funktion ??? *ganz doof frag*
Hi Bauchi,
Bin mir nicht ganz sicher ob es damit zu tun hat, aber
ich glaube es hängt davon ab ob du
<? ?> einbaust oder ned
generell verwende ich immer die ]PHP[ ... ]/PHP[ -Tags vom BB-Code
Die Klammer wurden absichtlich falsch geschrieben
Test 1
echo "Hello";
Test 2
<?
echo "Hello";
?>
So ...
Ich hab mich mal schlau gemacht.
dieses optische Feature bietet PHP ab der Version 4
die Funktion heißt: highlight_string (http://www.php.net/manual/de/function.highlight-string.php)
nur hat sie einen kleinen BUG!
es muß am Anfang und Ende
<? bzw. ?>
stehen
Damit man Überhaupt Code posten kann, gibt es im Burning-Board (dieses Board-System) die Funktion:
phphighlite
der Code dazu ist:
<?
function phphighlite($code) {
$code = str_replace(">", ">", $code);
$code = str_replace("<", "<", $code);
$code = str_replace("&", "&", $code);
$code = str_replace(´$´, ´\$´, $code);
$code = str_replace(´\n´, ´\\\\n´, $code);
$code = str_replace(´\r´, ´\\\\r´, $code);
$code = str_replace(´\t´, ´\\\\t´, $code);
$code = str_replace("< br>", "\r\n", $code);
$code = str_replace("< br />", "\r\n", $code);
$code = stripslashes($code);
ob_start();
$oldlevel=error_reporting(0);
highlight_string($code);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
//$buffer = str_replace(""", "\"", $buffer);
return "<blockquote><pre><font size=1>php:</font><hr>$buffer<hr></pre></blockquote>";
}
?>
der BR-Tag mußte ich entschärfen!!
es ist ein Blank zwischen < und br!!
Ohne dieser Funktion würde der Code zwar gespeichert werden, aber bei der Anzeige Übersetzt werden.
das ist nicht gerade im Sinne des Erfinders, bzw. kann es zu gröberen Problemen kommen -> Security
;-)
ChiLLinG
26.03.2002, 15:38
sorry. war unterwegs !
also die "Sprache" mit der man Filemaker in html einbaut heisst cmdl oder cdml irgendwie so ! :) is total beschissen, weil man so operatoren wie modulo o.ä. nicht hat !!
die sache is die .. ich kann nicht php und filemaker mischen ! Der Filemaker server unterstützt nämlich kein PHP ! Ich bräuchte na andere Lösung !
Vielen Dank trotzdem für eure Hilfe soweit :9
Thanx
wie waere es wenn du mal bei filemakerprofis (http://www.filemakerprofis.de) im board nachfragst
evtl. kennen die sich besser aus
hope this helps
bitte loeschen wer kann danke
wie waere es wenn du mal bei den
filemakerprofis (http://www.filemakerprofis.de) im board nachfragst
evtl. kennen die sich besser aus
hope this helps
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.