Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 20, 2012, 01:29:39

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5257 Beiträge in 1422 Themen von 333 Mitglieder
Neuestes Mitglied: pje
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  Ajax Fragen (Moderator: dobra)
| | | |-+  Problem mit radiobuton
0 Mitglieder und 2 Gäste betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Problem mit radiobuton  (Gelesen 820 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« am: Dezember 25, 2010, 11:41:24 »

Hallo ich versuche, den Profuktfinder mit jQuery/Ajax nachzubauen  Roll Eyes

also die Schieberegler funktionieren ja schon mal  Smiley
aber mit den Radiobutton habe ich Probleme - wenn man die anklickt funktioniert's mal und mal wird die neue Auswahl nur sekundenbruchteile lang angezeigt und springt wieder auf die vorige Auswahl zurück  Huh
zum online gucken
http://www.wolle-online.eu/wip-cgi-bin/woll-insel-Partnershop/iboshop.cgi?show1200002100

Die Radioboxen gebe ich dynamisch aus:
Code:
sub kategorie {
$out .= qq|<table><tr><td><input type="radio" id="alle" name="kat" style="height:13px; width:13px;" onclick="myslider();"></td><td style="font-size:10px;"> alle </td></tr></table>|;
my $ITEM = ssp::db_get_prefix() . "ITEM";
my $count = ssp::readSQLData(qq|SELECT DISTINCT KATEG FROM $ITEM WHERE XISLINK=0 && FIRMA = 'Lang Yarns'|, "KATEG");
        for (my $i = 0; $i < $count; $i++) {
            my $kateg = ssp::get_var_db("KATEG", $i);
                $out .= qq|<table><tr><td><input type="radio" id="$kateg" name="kat" style="height:13px; width:13px; " onclick="myslider();"></td><td style="font-size:10px;"> $kateg </td></tr></table>|;
}
main::mprint ($out);
}

 js-Script
Code:
if (document.getElementById('alle').checked == true) { var kat = 'alle';}
if (document.getElementById('BAUMWOLLE').checked == true) { var kat = 'BAUMWOLLE';}
if (document.getElementById('BAUMWOLLMISCHUNGEN').checked == true) { var kat = 'BAUMWOLLMISCHUNGEN';}
if (document.getElementById('SCHURWOLLE').checked == true) { var kat = 'SCHURWOLLE';}
if (document.getElementById('WOLLMISCHUNGEN').checked == true) { var kat = 'WOLLMISCHUNGEN';}
if (document.getElementById('EFFEKT- und MODEGARNE').checked == true) { var kat = 'EFFEKT- und MODEGARNE';}
if (document.getElementById('EDELGARNE').checked == true) { var kat = 'EDELGARNE';}
if (document.getElementById('SOCKENWOLLE').checked == true) { var kat = 'SOCKENWOLLE';}
if (document.getElementById('Micro/Kunstfaser').checked == true) { var kat = 'Micro/Kunstfaser';}
if (document.getElementById('HÄKELGARN').checked == true) { var kat = 'H&Auml;KELGARN';}

  var postdata = {
method : 'slidersearch',
id : 0,
params : [min,max,min2,max2,kat]
};

ipl-Script
Code:
 my $kat = $pCall->{params}[4]; # Kategorie gewählt
    if ($kat ne "alle") {$kat2 = qq|&& KATEG = '$kat'|;} else {$kat2 = "";}
  
  my $ITEM = ssp::db_get_prefix() . "ITEM";
 
my $count = ssp::readSQLData(qq|SELECT ITEMID, DESCR, PRICE, PRODBILD, ZTEXT FROM $ITEM WHERE ( CAST(REPLACE(PRICE, ',', '.') AS DECIMAL(10,2)) >= $testmin AND CAST(REPLACE(PRICE, ',', '.') AS DECIMAL(10,2)) <  $testmax) && (NDSTAERKE1 >= $nadelmin OR NDSTAERKE2 >= $nadelmin) && (NDSTAERKE2 <= $nadelmax OR NDSTAERKE1 <= $nadelmax) && DESCR <> ' ' && FIRMA = 'Lang Yarns' && XISLINK=0 $kat2 ORDER BY DESCR|, "ITEMID","DESCR","PRICE","IMG","ZTEXT");
if ($count >= 0) {
                         ...

Bei Klick auf einen Radiobutton werden 2 Requests gesendet
1x von
<input type="radio" id="$kateg" name="kat" style="height:13px; width:13px; " onclick="myslider();">
und 1x von
<form name="Testform" method="post" action="" onmouseup="return myslider();"> (brauche ich für die Schieberegler)

Die Konsole zeigt aber beige korrekt an
Zitat
{"method":"slidersearch","id":0,"params":["","","","","BAUMWOLLMISCHUNGEN"]}
und
Zitat
{"method":"slidersearch","id":0,"params":["","","","","BAUMWOLLMISCHUNGEN"]}
trotzdem springt die Ausgabe aber manchmal (nicht immer) auf die vorherige Auswahl zurück.

Ändere ich dann eine Auswahloption mit einem der Schieberegler = neuer Request wird die Kategorie wieder korrekt eingeblendet
Zitat
{"method":"slidersearch","id":0,"params":["2.1","12.6","3.5","6.5","BAUMWOLLMISCHUNGEN"]}

ich finde keine Erklärung - bzw. Lösung - für das sonderbare Verhalten  Undecided

Nachtrag:
lokal funktioniert's beim Wechsel der Kategorien IMMER nur wenn zuvor "alle" angeklickt war, kommt das Verhalten wie online
« Letzte Änderung: Dezember 25, 2010, 11:54:40 von dobra » Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #1 am: Dezember 26, 2010, 08:26:17 »

nachdem ich gestern den ganzen Tag an einem anderen Projekt gearbeitet habe, habe ich mein "Blackout" überwunden Wink

Der Fehler war, dass ich das onmouseup="myslider();" NICHT global im Formtag eintragen darf sondern für jedem Schieberegler explizit im jeweiligen div
<div id="slider-range" style="width:150px; margin-left:5px;" onmouseup="myslider();"></div>
<div id="slider-range2" style="width:150px; margin-left:5px;" onmouseup="myslider();"></div>
usw

Jetzt funktionieren die Schieberegler UND die Kategorieauswhl über Radiobutton  Cheesy mit
<input type="radio" id="$kateg" name="kat" style="height:13px; width:13px; " onclick="myslider();">

Kann mich also jetzt dem nächsten Problem - die Ausgabe der Ergebnisse in einem Content Slider - widmen  Roll Eyes
Gespeichert

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

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