Autor Thema: cart-Einträge mit Bedingung global löschen?  (Gelesen 9175 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
cart-Einträge mit Bedingung global löschen?
« am: November 26, 2009, 17:06:12 »
Hallo,

mit  ssp::cart_write_var('xyz', $irgendwas);  kann ich Cart-Einträge anlegen,
mit  ssp::cart_write_var('xyz', "");   kann ich den Wert löschen
gibt es auch eine Anweisung, cart-Einträge abzufragen und global zu löschen (oder auf "" zu setzen)?

konkret: ich habe eine variable Anzahl (ca 15 - 30 Einträge) die alle mit "name_" beginnen.

ich möchte also gerne sowas machen
if (Carteintrag(?) =~ /name_/) { löschen - oder auf "" setzen }

geht das, oder muss ich da wirklich die maximal mögliche Anzahl einzeln schreiben
ssp::cart_write_var('name_...', "");
...
...
~30x

Linkback: https://www.shoppilot.net/pf/index.php?topic=1334.0
mfG
dobra

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: cart-Einträge mit Bedingung global löschen?
« Antwort #1 am: November 27, 2009, 08:59:20 »
Hallo dobra,

erinnern Sie sich noch an das serialize-Modul?
Das ist für Ihren Anwendungsfall wahrscheinlich mal wieder genau das richtige ;)
Damit hätten Sie die 10-15 verschiedenen Einstellungen nur in einer einzigen cart-Zeile,
die Sie dann mit einem einzigen Befehl löschen können.
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: cart-Einträge mit Bedingung global löschen?
« Antwort #2 am: November 27, 2009, 09:10:07 »
Hallo ahe,

da das doch ein sehr spezielles Thema ist - Antwort per mail

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: cart-Einträge mit Bedingung global löschen?
« Antwort #3 am: November 27, 2009, 22:31:47 »
Hallo ahe,

Erfolgsmeldung  ;)

also mit
my $olddata = ssp::cart_read_var('ajax_serialize');
if (length($olddata) && ($olddata ne $ssp::undefined)) {
$SETTINGS = serialize::unserialize($olddata);
}
hab ich's nicht hingekriegt  :(
Wenn ich mir zum testen $SETTINGS mit main::mprint ausgegeben habe, ist sowas (mit wechselndem Code in der Klammer) rausgekommen
HASH(0x1ef82dc)
und damit nix gespeichert sondern alle Werte gelöscht worden

aber mit Ihrem Hinweis hab ich dann nach "Schleifen mit Hashes" gesucht und die Lösung gefunden;

<!--spmacro:module(ajaxconfig)                    
push(@INC,'ajax');
require "JSON.pm";

use serialize;
my %SETTINGS = ();

    my $datastr = ssp::cart_read_var('ajax_serialize');
    my $tmp = serialize::unserialize($datastr);  
    %daten = %$tmp;

print "Content-Type: text/plain;charset=ISO-8859-1\n\n";
#use utf8;
my $pCall = JSON::jsonToObj($main::input);
my %result;
$result{_call} = $pCall;

if ($pCall->{method} eq 'ajaxconfig1') {
...
...
if ($pCall->{method} eq 'ajaxconfig2') {


      my $olddata = ssp::cart_read_var('ajax_serialize');
      if (length($olddata) && ($olddata ne $ssp::undefined)) {
      my $tmp2 = serialize::unserialize($olddata);  
      %daten2 = %$tmp2;
         my $x;
         my $y;
         while (($x, $y) = each(%daten2)) {
           $SETTINGS{$x} = $y;
         }
      }
   

my $artikel = $daten{artikel};
   ...
   ...
   div Daten auslesen, db-Abfragen, Bedingungen
   my $w_schritt = $pCall->{params}[2];
   ...
   if ($w_schritt == "1 bis x") {
   ...
   }
   usw, etc,
   bis  Zeile 641
   
ssp::cart_write_var('ajax_serialize', serialize::serialize(\%SETTINGS));
}   
   
print JSON::objToJson(\%result);
exit 0;

   
(hat etwas länger gedauert, aber jetzt funktioniert's  ;D)
und jetzt kann ich auch mit
<!--spmacro:module(ajaxvari)
sub loeschen {
  ssp::cart_write_var('ajax_serialize', "");
  }
-->
alle Werte (egal wieviele gerade im Carteintrag stehen) bequem löschen.

Danke nochmal


xx
Pflichfelder mit Bedingung

Begonnen von dobra

0 Antworten
5527 Aufrufe
Letzter Beitrag Dezember 27, 2017, 21:54:54
von dobra
xx
for Schleife mit Bedingung = Summe ausgeben

Begonnen von dobra

2 Antworten
5496 Aufrufe
Letzter Beitrag Juli 23, 2008, 16:49:07
von dobra
xx
cart-Verzeichnis ist übervoll

Begonnen von parimo

6 Antworten
7744 Aufrufe
Letzter Beitrag Juni 13, 2008, 16:00:28
von parimo
xx
Artikel suchen -> löschen?

Begonnen von dobra

2 Antworten
5097 Aufrufe
Letzter Beitrag November 04, 2010, 10:40:58
von dobra