Problem mit radiobuton

Begonnen von dobra, Dezember 25, 2010, 11:41:24

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo ich versuche, den Profuktfinder mit jQuery/Ajax nachzubauen  ::)

also die Schieberegler funktionieren ja schon mal  :)
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  ???
zum online gucken
http://www.wolle-online.eu/wip-cgi-bin/woll-insel-Partnershop/iboshop.cgi?show1200002100

Die Radioboxen gebe ich dynamisch aus:
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
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
 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  :-\

Nachtrag:
lokal funktioniert's beim Wechsel der Kategorien IMMER nur wenn zuvor "alle" angeklickt war, kommt das Verhalten wie online
mfG
dobra

dobra

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

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  :D 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  ::)
mfG
dobra