Mik3e
Neues Mitglied
Hallo zusammen,
Ich erstelle gerade im Sinne des RWD die Seite für die Ansicht eines Warenkorbs. Um eine möglichst optimale Darstellung der Produktliste zu gewährleisten, werden zwei unterschiedliche Tabellen genutzt. Eine für Mobile Devices in der die Zellen gestapelt sind und eine für Desktops mit horizontaler Gliederung.
Für die Umsetzung nutze ich Twitter Bootstrap 2.
Zum besseren Verständnis hier ein Auszug in vereinfachter Form:
Die CSS Klassen "table" und "rwd-table" stellen sicher, dass die erste Tabelle erst bei Auflösungen im Tablet-Bereich und darüber und die zweite Tabelle bei niedrigen Auflösungen angezeigt wird.
Und nun zum eigentlichen Problem:
Beide Tabellen weisen ein Eingabefeld "qty" aus, über das der User die Menge ändern kann. Klickt er auf "Update cart", wird der Wert an den Server gepostet und aktualisiert.
Ihr könnt es Euch schon denken: Nachdem es hier nun zwei Felder "qty" gibt, die aber bei einem Submit unterschiedlich befüllt sind (weil ja jeweils entweder nur Tabelle 1 oder Tabelle 2 je nach Auflösung sichtbar sind), stimmen die übertragenen Werte nicht.
Wenn ich in der Desktop Tabelle die qty auf "2" erhöhe und das Formular übertrage, posted der Browser (zumindest bei Webkit ist es so) dennoch den Wert der zweiten Tabelle. Offenbar überlädt bei der Webkit Engine das spätere Element im DOM das davor liegende.
Meine Frage:
Nachdem dieses Prinzip ein empfohlenes Vorgehen ist um Tabellen optimal auf kleinen Devices abzubilden, komme ich um zwei Tabellen nicht rum (die Struktur ist komplett unterschiedlich). Natürlich könnte ich versuchen mit jQuery Lösungen zu erwirken - ist allerdings nicht sehr sauber.
Hattet ihr vielleicht schon mal das selbe Problem? Oder kennt jemand ein Pattern, mit dem genau dieses Problem angegangen wird?
Ich danke Euch schon vorweg für alle Ideen & Inputs,
Liebe Grüße,
Mike
Ich erstelle gerade im Sinne des RWD die Seite für die Ansicht eines Warenkorbs. Um eine möglichst optimale Darstellung der Produktliste zu gewährleisten, werden zwei unterschiedliche Tabellen genutzt. Eine für Mobile Devices in der die Zellen gestapelt sind und eine für Desktops mit horizontaler Gliederung.
Für die Umsetzung nutze ich Twitter Bootstrap 2.
Zum besseren Verständnis hier ein Auszug in vereinfachter Form:
HTML:
<form>
<!-- .table Cart table DESKTOP view -->
<table class="table cart-table">
....<input type="text" name="qty" value="1" />...
</table>
<!-- /.table Cart table DESKTOP view -->
<!-- .table Cart table MOBILE view -->
<table class="rwd-table cart-table">
....<input type="text" name="qty" value="1" />...
</table>
<!-- /.table Cart table MOBILE view -->
<input type="submit" value="Update cart" />
</form>
Die CSS Klassen "table" und "rwd-table" stellen sicher, dass die erste Tabelle erst bei Auflösungen im Tablet-Bereich und darüber und die zweite Tabelle bei niedrigen Auflösungen angezeigt wird.
Und nun zum eigentlichen Problem:
Beide Tabellen weisen ein Eingabefeld "qty" aus, über das der User die Menge ändern kann. Klickt er auf "Update cart", wird der Wert an den Server gepostet und aktualisiert.
Ihr könnt es Euch schon denken: Nachdem es hier nun zwei Felder "qty" gibt, die aber bei einem Submit unterschiedlich befüllt sind (weil ja jeweils entweder nur Tabelle 1 oder Tabelle 2 je nach Auflösung sichtbar sind), stimmen die übertragenen Werte nicht.
Wenn ich in der Desktop Tabelle die qty auf "2" erhöhe und das Formular übertrage, posted der Browser (zumindest bei Webkit ist es so) dennoch den Wert der zweiten Tabelle. Offenbar überlädt bei der Webkit Engine das spätere Element im DOM das davor liegende.
Meine Frage:
Nachdem dieses Prinzip ein empfohlenes Vorgehen ist um Tabellen optimal auf kleinen Devices abzubilden, komme ich um zwei Tabellen nicht rum (die Struktur ist komplett unterschiedlich). Natürlich könnte ich versuchen mit jQuery Lösungen zu erwirken - ist allerdings nicht sehr sauber.
Hattet ihr vielleicht schon mal das selbe Problem? Oder kennt jemand ein Pattern, mit dem genau dieses Problem angegangen wird?
Ich danke Euch schon vorweg für alle Ideen & Inputs,
Liebe Grüße,
Mike