Shopsystem ShopPilot

ShopPilot => SSP - Shop Server Pages => SSP Bibliothek => Thema gestartet von: dobra am April 18, 2015, 22:09:02

Titel: Dynamische Tabellen für Detailseiten erstellen
Beitrag von: dobra am April 18, 2015, 22:09:02
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:

(https://www.woll-insel.at/Bilder/SP-Forum/tabelle2.jpg)

(https://www.woll-insel.at/Bilder/SP-Forum/tabelle1.jpg)