Moin ReiniG,
erst einmal ein paar Anmerkungen zu deinem "View":
$counter = 0; $file = 'seats.txt'; $line = file($file);
Du gehst im Folgenden davon aus, dass deine Datei exakt 14 Zeilen hat. Vielleicht möchtest du lieber über count($line)
iterieren?
for($i=0;$i < 14;$i++){ $counter = $counter + 1;
Wie du eine Zeile darüber siehst, geht das auch kürzer: ++$count
.
$string = $line[$i];
Ich würde auch gleich noch eine weitere Variable anlegen: $status = substr($string, 4, 1)
. Damit sparst du dir zwei weitere Aufrufe der Funktion im darauf Folgenden if-else.
Anstelle der Bitmaps, die IMHO unkomprimiert sind, würde ich je nach Anwendungsfall eher PNG, JPEG oder SVG verwenden. Dann fehlen da im einfachsten Fall entweder Semikoli oder CSS-Code – auf jeden Fall allerdings jeweils das alt-Attribut des img-Elements! Wobei passende CSS-Klassen für jeden möglichen $status
eines Button oder gar eine entsprechend aktivierte SVG-Grafik deutlich besser wären.
if($counter == 8) { echo "    <img src='R1.bmp' />        "; } if(substr($string,4,1) == "f") { echo "<img id=$i onclick='myFunction(id)' src='chkBox_10.bmp' title='0' />    "; } else if(substr($string,4,1) == "s") { echo "<img id=$i onclick='myFunction(id)' src='chkBox_2.bmp' title='2' />    "; } else if(substr($string,4,1) == "r") { echo "<img id=$i onclick='myFunction(id)' src='chkBox_1.bmp' title='1' />    "; } else { echo "<img id=$i onclick='myFunction(id)' src='chkBox_3.bmp' title='3' />    "; } } ?>
Achso, hat es eigentlich einen Grund, warum der Wert des id-Attributs nicht in Anführungszeichen steht?
Wie bringe ich jetzt die ausgewählten Sitze (aus der client side Javascript Funktion) in den Warenkorb (event. auf eine neue Seite)?
Zu deiner Verarbeitungslogik: Die alert
-Aufrufe brauchst du nicht, wenn du vorher mit einer Legende erläuterst, was das jeweilige Symbol bedeutet. Und die nicht verfügbaren Sitze würde ich gar nicht erst klickbar machen. Apropos klickbar: Ich denke, dass du in deinem Anwendungsfall wirklich lieber gestylte Buttons statt Bilder haben möchtest. Wenn du das ganze noch in ein Formular steckst, können auch Nutzer ohne JavaScript bei dir buchen.
Auf deinem Server brauchst du dann natürlich noch ein PHP-Programm, das die Formulardaten entgegen nimmt.
Viele Grüße
Robert