Wie kann man das besser machen?

Cyperfriend

Der ohne Avatar
Registriert
14 Juli 2013
Beiträge
1.123
Ich habe mir mittels CSS ein kleines Eingabeformular gebastelt, dass so aufgebaut ist:

[src=html5]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Kassenprogramm</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>
<div class="content">
<fieldset>
<legend>Eingabe</legend>
<div class="test">
<label for="1">1</label>
<input type="text" id="1" name="1">
</div>
<div class="test">
<label for="2">2</label>
<input type="text" id="2" name="2">
</div>
<div class="test">
<label for="3">3</label>
<input type="text" id="3" name="3">
</div>
<div class="test">
<label for="4">4</label>
<input type="text" id="4" name="4">
</div>
<div class="test">
<label for="5">5</label>
<input type="text" id="5" name="5">
</div>
<div class="test">
<label for="6">6</label>
<input type="text" id="6" name="6">
</div>
<div class="test">
<label for="7">7</label>
<input type="text" id="7" name="7">
</div>
<div class="test">
<label for="8">8</label>
<input type="text" id="8" name="8">
</div>
<div class="test">
<label for="9">9</label>
<input type="text" id="9" name="9">
</div>
<div class="test">
<label for="10">10</label>
<input type="text" id="10" name="10">
</div>
<div class="test">
<label for="11">11</label>
<input type="text" id="11" name="11">
</div>
<div class="test">
<label for="12">12</label>
<input type="text" id="12" name="12">
</div>
<div>
<input type="submit" name="speichern" value="Speichern">
</div>
</fieldset>
</div>
</body>
</html>
[/src]

Der dazugehörige CSS-Teil:
[src=css]
@charset "utf-8";
/* CSS Document */

* {
margin:0;
padding:0;
background-color:e9e9e9;
font-family:Arial;
font-size:12px;
color:#000;
}

.content {
width:1280px;
margin-left:auto;
margin-right:auto;
}

legend {
font-weight:bold;
}

label {
display:block;
}

input {
width:100px;
}

.test {
background-color:#06C;
float:left;
}
[/src]

Das Ganze sieht dann so aus:
Anhang anzeigen 37000

Ich denke prinzipiell ist dagegen nichts einzuwenden, aber wo eine Eingabe, da auch eine Ausgabe. Die Daten wandern natürlich in eine Datenbank. Ob das MySQL oder XML sein wird überlege ich noch, spielt für das weitere Vorgehen aber keine Rolle.

Die Ausgabe soll nach dem gleichen Schema erfolgen, also dass dann anstatt der <input>-Felder eben Text steht und jetzt wird auch irgendwie klar, dass das obere Vorgehen nicht gerade sinnvoll ist, da man so einen Haufen while-Schleifen braucht und die einzelnen Felder ausgelesen werden müssen. Das halte ich weder für effektiv, noch für übersichtlich. Das kann man doch sicher viel besser lösen? Oben die Überschriften und drunter dann die Ausgaben, wie das bei einer klassischen Tabelle der Fall wäre. Ich will aber keine HTML-Tabelle, auch wenn der Inhalt tabellarisch ist.

Kann das jemand für mich berichtigen?
 
  • Thread Starter Thread Starter
  • #3
Ich habe keine, aber wäre ja kein Ding eine zu machen. Ich wills aber mit CSS machen.
 
  • Thread Starter Thread Starter
  • #5
Wie meinst du die Frage? Ganz normaler Text der über die Eingabefelder in die Datenbank wandert und von dort wieder ausgelesen werden soll.
 
Du könntest es über eine machen und dann dementsprechend aus der Datenbank auslesen. Du musst nicht jedes Datum einzeln auslesen, sondern kannst das als komplettes Array in PHP laden. ;)

Pass nur auf, dass Du bei Datenbankoperationen immer alles, was von Benutzern oder aus der Datenbank kommt, als Böse ansiehst und eine Escape-Funktion drüberlaufen lässt (PDO: quote(), input: htmlspecialchars()).

Was epiphora vermutlich meint ist, welche Daten du da speichern möchtest. Sind es Spielergebnisse in einer Bundesligatabelle? Oder Bingo-Ergebnisse?
 
Bitte immer fachlich korrekt bleiben. Du erstellst das Formular mit HTML und stylst es mit CSS. XML ist auch keine Datenbank, sondern eine Markup Language wie HTML ;)
 
Irgendwie ist Deine Frage zumindest mir nicht so ganz verständlich...

So wie ich das verstehe hast Du eine Datenbank-Tabelle mit [n] Einträgen, wobei jeder Eintrag 12 Werte hat. Um das nun auszugeben, wäre eine HTML-Tabelle tatsächlich korrekt. Willst Du die nicht verwenden, tun es z. B. auch in einer Zeile floatende DIVs.

Ebenfalls verstehe ich nicht die Passage "...dass das obere Vorgehen nicht gerade sinnvoll ist, da man so einen Haufen while-Schleifen braucht und die einzelnen Felder ausgelesen werden müssen."

Du verbindest beim Auslesen zur Datenbank, holst Dir mit einem entsprechenden SELECT die Datensätze in ein Array und gibst diese dann zeilenweise im gewünschten HTML-Element aus. Ich sehe da nur eine WHILE-Schleife fürs Einlesen ins Array und eine FOREACH-Schleife für die Ausgabe.

Erklär doch mal :)

Gruß,
J.
 
Um das nun auszugeben, wäre eine HTML-Tabelle tatsächlich korrekt. Willst Du die nicht verwenden, tun es z. B. auch in einer Zeile floatende DIVs.

Nein, Divs sind bedeutung-/zusammenhanglos, wenn man partout keine Tabelle hernehmen will, sollte man, wie bereits angesprochen eine DL nehmen.
 

Bisher wurde mir nicht klar, ob es sich um eine Frage zur Programmiertechnik oder zu semantisch korrektem HTML oder reiner Umsetzbarkeit ging... :unknown:

Falls semantisch, hast Du natürlich Recht.

Wobei ein Screenreader immerhin den linearen Zusammenhang der DIVs in einem Elternelement erkennen würde.
 
Tabellen zum Gestalten von Layouts ist eine schlechte Sache. Aber das Basteln einer Tabelle mit Divs find ich irgendwie genauso schlimm.
 
Zurück
Oben