Autor Thema: Problem mit radiobuton  (Gelesen 3898 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1337
  • Lob: 18
    • ShopPilot AT
Problem mit radiobuton
« am: Dezember 25, 2010, 11:41:24 »
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

Linkback: http://www.shoppilot.net/pf/ajax-fragen/24/problem-mit-radiobuton/1495/
« Letzte Änderung: Dezember 25, 2010, 11:54:40 von dobra »
mfG
dobra
______________________________
Betreute Shops:
Barrique Einzelhandel
Barrique Großhandel

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1337
  • Lob: 18
    • ShopPilot AT
ERLEDIGT: Problem mit radiobuton
« 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 ;)

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  ::)


xx
DB-Problem

Begonnen von Andi

17 Antworten
10575 Aufrufe
Letzter Beitrag April 29, 2003, 15:04:45
von emil
xx
Problem mit DB-Struktur

Begonnen von jg

2 Antworten
2516 Aufrufe
Letzter Beitrag Juli 03, 2012, 15:58:29
von jg
xx
Problem Mailversand

Begonnen von Andi

12 Antworten
9370 Aufrufe
Letzter Beitrag April 02, 2007, 14:52:43
von Andi
xx
Problem mit SB und Länderkennung

Begonnen von dobra

4 Antworten
5212 Aufrufe
Letzter Beitrag Oktober 18, 2010, 08:38:00
von ahe