Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 21, 2013, 00:31:53

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5412 Beiträge in 1474 Themen von 334 Mitglieder
Neuestes Mitglied: tigger
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  Doppelte Hersteller
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Doppelte Hersteller  (Gelesen 3869 mal)
bytefender
Newbie
*

Lob: 0
Offline Offline

Beiträge: 12


« am: Oktober 07, 2004, 13:14:51 »

Um ein Select zu befüllen habe Ich ein Script geschrieben (Danke für die Mithilfe von Markus), um aus der Datenbank die Optionsfelder automatisch zu befüllen. Gleichzeitig werden mit $t1 und $t die Duplikate abgefangen. Das Feld 'HERSTNAME' ist ein benutzerdefiniertes Feld vom Typ TEXT.

   <!--spmacro:module(herst)
   sub h
   {
      my $t;
      my $text;
      my $t1;
      my $i=1;
      while ($i <= 211)
      {         
         $t =ssp::get_var_article('HERSTNAME',$i);
         if ($t ne $t1)
         {
            $text = qq{<option value="$t">$t</option>};
            main::mprint($text);
            $t1 = $t;
            $i++;
            
         }
         else
         {
            $i++;
            $t1 = $t;
         }
         
      }
      main::mprint($text1);
   }
   -->
Die Options Tags werden dann mit __herst::h__ in das Dokument weggeschrieben.
Es funktioniert auch mit dem einlesen, jedoch werden sporadisch die Hersteller doppelt angezeigt und das letzte Optionsfeld ist immer undefined.

Habe ich hier etwas vergessen?

Sorry aber C liegt bei mir schon ein paar Tage zurück und mit Perl fange ich jetzt erst an.

MFG
Fehlt hier noch was.
« Letzte Änderung: Februar 11, 2007, 13:10:00 von ahe » Gespeichert
admin
Administrator
Sr. Member
*****

Lob: 10
Offline Offline

Beiträge: 472


...
« Antwort #1 am: November 09, 2004, 23:53:54 »

Hallo,

also hier eine noch bessere Lösung (die auch die Duplikate abfängt und die korrekte Anzahl berücksichtigt)

Anwendung: In einem Feld (hier ergaenz1) ist der Hersteller verzeichnet. Im shop Soll auf der Artikelseite eine Auswahloption angeboten werden, wozu eine Liste (<select><option></option></select>) der Auswahlmöglichkeiten zu generieren ist. Diese wird dann als Suchfeld verwendet und man erhält so eine z.B. nach Hersteller gefilterte Liste. Hier geht es um die Generierung der Select-Box.

Code:
<!--spmacro:module(herst)
sub h {
  my $anz = $_[1];
  my $t;
  my $i=0;
  my %TEST =();
  main::mprint("<select name=hersteller>");
  while ($i <= $anz)
  {
    $t =ssp::get_var_article('ergaenz1',$i);
    if (!defined ($TEST{$t})) {
       $text = qq{<option value="$t">$t</option>\n};
       main::mprint($text);
       $TEST{$t} =1;
     }
     ++$i;
  }
  main::mprint("</select>");
}
-->



Gruss hop
« Letzte Änderung: Februar 11, 2007, 13:09:39 von ahe » Gespeichert
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1245


WWW
« Antwort #2 am: Februar 11, 2007, 12:18:17 »

Hallo - genau so ein Script suche ich.........

Den Code von hop habe ich mir aus dem Quelltext geholt, aber ohne das "Optionsfelder befüllen" - Skript kann ich nichts damit anfangen.

Wäre suppernett, wenn Sie mir das verraten würden.

Vielen Dank im Voraus
dobra
Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 20
Offline Offline

Beiträge: 427


« Antwort #3 am: Februar 11, 2007, 13:10:50 »

Hallo dobra,

jetzt sollten wieder alle Scripte sichtbar sein.
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1245


WWW
« Antwort #4 am: Februar 11, 2007, 13:40:27 »

Danke ahe,

Irgendwas fehlt mir aber???
Es funktioniert bei mir nicht  http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?show1200004230

Code:
<!--spmacro:module(marke)
sub listmarke {
  my $anz = $_[1];
  my $t;
  my $i=0;
  my %TEST =();
  main::mprint("<select name=Marke>");
  while ($i <= $anz)
  {
    $t =ssp::get_var_article('MARKE',$i);
    if (!defined ($TEST{$t})) {
       $text = qq{<option value="$t">$t</option>\n};
       main::mprint($text);
       $TEST{$t} =1;
     }
     ++$i;
  }
  main::mprint("</select>");
}

sub marke {

my $count = ssp::readSQLData("SELECT MARKE FROM PY2_ITEM","MARKE");
if ($count >= 0) {
my $i=0;
while ($count > $i) {
$marke = ssp::get_var_db("MARKE",$i);
main::mprint(" $marke<br>\n");
++$i;
}
} else {
my $errtext = ssp::get_last_sqlerr();
main::mprint("Fehler beim DB Zugriff: $errtext<br>\n");
}
}
-->

ich kann zwar mit __marke::marke__ die DB nach benutzerdef. Feld "MARKE" abfragen aber ich bringe es nicht in die Listbox

habe versucht, das Skript anzupassen:  $t =ssp::get_var_article('ergaenz1',$i);
  -  die Marke steht bei mir in ben. def. Feld MARKE - $t = ssp::get_var_article("MARKE",$i);
was bedeutet z.B. die Zeile  my %TEST =();
muß ich nicht %TEST irgendwie definieren?

mal wieder ratlos
« Letzte Änderung: Februar 11, 2007, 14:01:55 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 20
Offline Offline

Beiträge: 427


« Antwort #5 am: Februar 11, 2007, 14:28:54 »

Die Funktion listmarke liest die Marken der Artikel auf einer einzelnen Artikelseite aus (zu sehen an: my $anz = $_[1]; und get_var_article).
Nicht shopweit wie Ihre Funktion marke.
Legen Sie also auf Ihrer Testseite mal einige Artikelverknüpfungen an.
Dann sollten die Hersteller dieser Verknüpfungen in der Listbox ausgegeben werden.
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1245


WWW
« Antwort #6 am: Februar 11, 2007, 14:37:52 »

alles klar - Danke - so funktioniert's
war wieder ein grober Gedankenfehler von mir

ich hatte da eigentlich eine andere Idee, die ich dann wieder mal nicht so umsetzen kann, wie ich mir das ausgedacht hatte.......

.........oder vielleicht doch?
Zitat
Diese wird dann als Suchfeld verwendet
wie kann ich das machen?
« Letzte Änderung: Februar 11, 2007, 14:42:04 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 20
Offline Offline

Beiträge: 427


« Antwort #7 am: Februar 11, 2007, 14:50:53 »

Schauen Sie mal in den Demoshop Styleshop.
Dort ist eine Herstellersuche (auch per Listbox) eingebaut.
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1245


WWW
« Antwort #8 am: Februar 11, 2007, 15:07:10 »

DANKE

ich denke, damit kann ich etwas anfangen (= meine Idee doch realisieren)
mal sehen ob's was wird........

Sie haben mir jedenfalls sehr geholfen
wünsche noch ein ganz besonders schönes Restwochenende

dobra
« Letzte Änderung: Februar 11, 2007, 15:08:46 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 20
Offline Offline

Beiträge: 427


« Antwort #9 am: Februar 11, 2007, 17:13:36 »

Danke, wünsche ich Ihnen ebenfalls.
Gespeichert

MfG ahe
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.18 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS