tr-bgcolor mal weiß, mal schwarz: warum gehts nicht ?
benji
- php
HAllo !
Ich finde den Fehler einfach nicht, wobei es sooooo einfach ist: Ich habe eine mit PHP vorher dynamisch generierte Tabellle (Auflistung eines beliebigen Ordners auf dem Server), bei der ich nun abwechselnd eine Reihe background-color weiß, eine andere leicht grau haben möchte, damit man nicht "in den Zeilen verrutscht", naja, hilft eben.
Alles kein Problem: $black als Variable, 0 = weiß, 1 = grau, dann einfach mein Ordern-Array mit while abfragen und dann immer wenn $black == 0 weiße hintergrundfarbe und $black = 1, damits nächstes mal dunkel wird - VÖLLIG einfach !
Also, hier mal mein Script:
---------
// ....
// $dirpath = aktuelles Serververzeichnis
// $handle = Ordner-Handle
$x = 0; // x wird hochgezählt und für Dateien als id verwendet !
$b = 2; //2 = weiß, 1 = schwarz (für bgcolor) !
function bow ()
{
if($b == 2) {
return "<td>";
$b = 1; }
else if($b == 1) {
return "<td class="b">";
$b = 2; }
}
while (false !== ($file = readdir ($handle))) {
$wfile = $dirpath . $file;
if($file == "." || $file == "Folder Settings" || $file == "desktop.ini") { $dvxqas = "blabloblu"; }
if($file == "..") echo "<tr><td width="16"><img src="http://sveni/images/folder-up.gif"></td><td colspan="2"><a href="javascript:history.back()">übergeordnetes Verzeichnis</a></td></tr>\n";
else if(is_file ($dirpath.$file)) {
$btd = bow();
echo <<<XYZYX
<tr>
<td width="16" valign="top"><img src="http://sveni/images/file-sheet.gif"></td>
$btd<a href="javascript:markdown('$wfile', $x);" class="wichtigfile">$file</a></td>
<td><a href="javascript:markdown('$wfile', $x);"><img src="http://sveni/images/file-sectfile-cold.gif" id="$x"></a> nicht ausgewählt</td>
</tr>
XYZYX;
}
else
{
$next_dirpath = $dirpath . $file ."\";
echo "<tr><td width="16" valign="top"><img src="http://sveni/images/file-folder.gif"></td><td colspan="2"><a href="?$next_dirpath" class="folderlink">$file</a></td></tr>\n";
}
$x++;
}
// .....
----------
Ich habe sogar schon total schwachsinnigerweise 2 für weiß und 1 für schwarz genommen, FALLS PHP wirklich 0 als Variable löschen interpretieren sollte, jedoch BEHAUPTET PHP IMMER; $black würde nicht EXISTIEREN !!!!!!!!!!!!!!!!!
Das ist totaler Schwachsinn.
Wo ist der Fehler ?
Danke schon mal,
benji
Hallo benji,
$x = 0; // x wird hochgezählt und für Dateien als id verwendet !
$b = 2; //2 = weiß, 1 = schwarz (für bgcolor) !function bow ()
{
if($b == 2) {
return "<td>";
$b = 1; }
else if($b == 1) {
return "<td class="b">";
$b = 2; }
}
$b ist eine lokale Variable, die bei jedem Aufruf der Funktion neu initialisiert wird.
Entweder ist sie global, dann suchst Du http://de3.php.net/manual/de/language.variables.scope.php#language.variables.scope.global oder sie ist absichtlich lokal, dann suchst Du http://de3.php.net/manual/de/language.variables.scope.php#language.variables.scope.static.
Gruss, Thoralf
Hi,
function bow ()
{
if($b == 2) {
return "<td>";
$b = 1; }
else if($b == 1) {
return "<td class="b">";
$b = 2; }
}
$b ist eine lokale Variable, die bei jedem Aufruf der Funktion neu initialisiert wird.
Entweder ist sie global, dann suchst Du http://de3.php.net/manual/de/language.variables.scope.php#language.variables.scope.global oder sie ist absichtlich lokal, dann suchst Du http://de3.php.net/manual/de/language.variables.scope.php#language.variables.scope.static.
Außerdem wird $b nie etwas zugewiesen in der Funktion bow, da jeweils kurz vor den Zuweisungen die Funktion verlassen wird...
cu,
Andreas
Hi,
function bow ()
{
if($b == 2) {
return "<td>";
$b = 1; }
else if($b == 1) {
return "<td class="b">";
$b = 2; }
}
Außerdem wird $b nie etwas zugewiesen in der Funktion bow, da jeweils kurz vor den Zuweisungen die Funktion verlassen wird...
DANKE ! Ich glaube, ich weiß, wo der Fehler liegt .... Also: statt $black oder $b nehme ich dann $td_b, und dann eben erst $td_b = x; und dann return x; - Ich habe nicht bedacht, dass durch return die gesamte Funktion abgebrochen wird !
danke danke,
benji