Dynamische Tabellen für Detailseiten erstellen

Begonnen von dobra, April 18, 2015, 22:09:02

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Aufgabe:
Varianten sollen in übersichtlichen Tabellen nach Größe und Farbe dargestellt werden.
Bei unterschiedlicher Spalten- und Zeilenanzahl sollen diese dynamisch erstellt werden.

Lösung:
vorausgesetzt die ben.def. Artikelfelder FARBE unf GROESSE sind "auch für Varianten" angelegt und diese Felder im WC befüllt.

<!--spmacro:module(vari)
sub table {
my $id = ssp::get_var_article('itemid', 0);
   my $pre = ssp::db_get_prefix();
   my $SITM = $pre . "SITM";

   my $read;
 if ($ssp::dbvend eq "MySQL") {      
$read = ssp::readSQLData("SELECT DISTINCT FARBE FROM $SITM WHERE MITEMID = '$id' ORDER BY SID","FARBE");
} else {  
$read = ssp::readSQLData("SELECT FARBE FROM $SITM WHERE MITEMID = '$id' GROUP BY FARBE ORDER BY MIN(SID)","FARBE");
}

my $out .= qq|<thead><tr><td>Größe/Preis</td>|;
   for (my $i = 0; $i < $read; $i++) {
       $farbe = ssp::get_var_db("FARBE", $i);
       $out .= qq|<th>$farbe</th>|;
   }
$out .= qq|</tr></thead>|;

   my $sql2 = qq|SELECT DISTINCT GROESSE,PRICE FROM $SITM WHERE MITEMID = '$id'|;
   my $read2 = ssp::readSQLData($sql2, "GROESSE","PREIS");

   for (my $i = 0; $i < $read2; $i++) {
       $gr = ssp::get_var_db("GROESSE", $i);
       $preis = main::fp(ssp::get_var_db("PREIS", $i));

my $sql3 = qq|SELECT ITEMID FROM $SITM WHERE MITEMID = '$id' AND GROESSE = '$gr' ORDER BY SID|;
my $read3 = ssp::readSQLData($sql3, "VARIARTNR");
my @array;
for (my $j = 0; $j < $read3; $j++) {
$variart = ssp::get_var_db("VARIARTNR", $j);
$td = qq|<td><input name="a__$variart" value=0 size=4></td>|;
push(@array, $td);
}

       $out .= qq|<tr><td>-<b>$gr</b>- $preis</td> @array </tr>\n|;
   }
main::mprint ($out);
}
-->


Ausgabe mit
<table class="table-responsive table-bordered table-striped" style="width:100%;">
__vari::table__
</table>


Ergebnis:





mfG
dobra