Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 22, 2012, 22:12:10

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
| | |-+  if Radio-Button checked
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: 1 [2] Drucken
Autor Thema: if Radio-Button checked  (Gelesen 6126 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #15 am: Juli 03, 2007, 15:43:37 »

wenn ich den JS-Code SO (mit <script...) direkt in die HTML-Vorlage schreibe, kommt jetzt die alert_meldung

" [objekt] "  und " 1 "

wenn ich es ohne <script> </script> in die externen js-Datei kopiere (wie ich es normalerweise mache), kommt
" Objekt erwartet "

Ist mir zwar nicht ganz klar, warum aber OK - Script direkt in die Vorlage schreiben statt in externe js-Datei ist das kleinste Problem.

Aber wenn ich jetzt (in der Vorlage)
Code:
<script type="text/javascript">
function checked()
{
document.getElementById('__lib::artikelnummer2__').value = "1";
}
</script>
schreibe, kommt auch " Objekt erwartet " 

Habe ich bei meinem JS-Script einen Fehler eingebaut?

Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #16 am: Juli 03, 2007, 16:13:39 »

Haben Sie die Funktion "checked" oder "mychecked" genannt?
Gespeichert

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

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #17 am: Juli 03, 2007, 16:32:17 »

oups

da habe ich den alten Code mit "checked" kopiert

Habs's jetzt auf "mychecked" ausgebessert
= KEINE Fehlermeldung mehr, aber der Crossartikel wird auch nicht in den WK gelegt





....wenn ich diese letzte Hürde noch schaffen könnte,,,,,,
Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #18 am: Juli 03, 2007, 17:25:16 »

ich glaube, ich habe den Fehler gefunden (?)
(aber keine Lösung dafür  Sad)

habe testweise mal das geschrieben

Code:
function mychecked()
{
        var myElem = document.getElementById('__lib::artikelnummer2__');
        alert('__lib::artikelnummer2__');
        myElem.value = "1";
        alert(myElem.value);
    }
</script>

jetzt wird (bei ALLEN Crossartikeln) die Artikelnummer des Hauptartikels ausgegeben

d.h. __lib::artikelnummer2__ wird nicht durch die Cross-Artikelnr, ersetzt (aber nur für diese verwendet)
Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #19 am: Juli 04, 2007, 06:46:38 »

Vielleicht (??) bin ich der Lösung einen kleinen Schritt näher gekommen:

Habe nach unendlich vielen Fehlversuchen einen Code gefunden, der in alert die jeweils richtige Artikelnummer ausgibt.
zur besseren Kontrolle habe ich bei jedem Crossartikel die Artikelnummer ausgegeben und das <input type "hidden"..> in der cross.txt Datei weggelassen

in externer JS-Datei:
Code:
function checkvalue (el)
{
    alert('<input type="hidden" name="' + el.value + ' " value="1" >');
}
in cross.txt:
Code:
<td><input name="test" type="radio" value="__lib::artikelnummer2__" onclick="checkvalue(this)"></td>


(Rabiobox anklicken -> Alertmeldung)

Das funktioniert jetzt so bei allen Crossartikeln aber es nutzt mir noch nichts  Wink
Ich brauche ja keine Alertmeldung, sondern ein "wenn ausgewählt mit Hauptartikel in den WK legen"

komme nicht dahinter, wie ich das anstellen kann.......
« Letzte Änderung: Juli 04, 2007, 07:16:36 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #20 am: Juli 04, 2007, 08:46:56 »

Liegen auch alle relevanten <input>s innerhalb des <form></form>?
Zu dem Zeitpunkt wo Sie auf "Bestellen" klicken müssen sich also mindestens

<input name="a__hauptartikel" value="1">
<input name="a__cross1" value="1">
<input type="submit">

innerhalb des <form></form> befinden.
Gespeichert

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

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #21 am: Juli 04, 2007, 08:55:57 »

so schaut der komplette Code im Moment aus
Detailseite http://www.woll-insel.at/Bilder/temp.txt
cross.txt http://www.woll-insel.at/Bilder/cross.txt

<input name="a__hauptartikel" value="1"> funktioniert aber nicht, da damit nur der Hauptartikel (Einheit) in den WK gelegt wird und nicht die ausgewählte Menge
habe das so gelöst:

              <SELECT name="METER____artnr__" id="Liter" size="1" onchange="getFlaschen(this)" >
                <OPTION id="1" value="0,5">0.5 Liter</OPTION>
                <OPTION id="2" value="0,75">0.75 Liter</OPTION>            
                <OPTION id="3" value="1">1 Liter</OPTION>
              </SELECT>
           <input type="hidden" name="__print::xartnr__" value="1" size="1">  bestellen  __id__</td>

sub xartnr {
   my $out = qq |a____artnr__|;
    main::mprint($out);
}
« Letzte Änderung: Juli 04, 2007, 09:01:50 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #22 am: Juli 04, 2007, 09:21:55 »

Gibt es schon eine URL unter der ich das mal testen kann?
Gespeichert

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

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #23 am: Juli 04, 2007, 09:36:50 »

leider nein (läuft nur mit LiveView)

habe das aktuelle Shop Projekt (ohne Bilder und Detailbeschreibungstexte)  mal auf den Server gelegt
(link kommt per mail)
Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #24 am: Juli 04, 2007, 17:23:54 »

ein halber  Erfolg:

Habe eine Scriptversion zusammengebastelt, die mit FF (ohne Fehlermeldung in der Konsole !) funktioniert  Grin

mit IE aber garnicht (kann nicht mal die Crossartikel anzeigen)   Cry

Code:
function checkvalue (el)
{
document.getElementById(el.value).value = "1";
}

und

Code:
<input name="test" type="radio" value="__lib::artikelnummer2__" onclick='checkvalue(this)'>
<input type="hidden" name="__lib::artikelnummer2__" id="__lib::artikelnummer2__" value="0" >

was hat der besch...  IE gegen dieses Script?

NACHTRAG

HURRRAAAAA  Grin Grin  es funktioniert auch mit IE
(hatte noch "alte Leichen" - Codeschnipsel von vorherigen Versuchen-  herumliegen die quer geschossen haben)

Jetzt bleibt noch ein Problem:
ich müßte noch irgendeine Abfrageschleife einbauen - wenn man vor dem Absenden mehrere Radioboxen hintereinander anklickt, wird zwar nur die letzte als ausgewählt angezeigt, aber alle gesendet....

Hat jemand eine Idee, wie ich das angehen könnte?

Mein Versuch:
Code:
function checkvalue (el,__artnr__) {
if(document.getElementById(__artnr__).checked == false) {
document.getElementById(el.value).value = "0";
} else {
document.getElementById(el.value).value = "1";
}
}

mit
Code:
<input id="__artnr__" name="test" type="radio" value="__lib::artikelnummer5__" onblur='checkvalue(this)'>
<input type="hidden" name="__lib::artikelnummer2__" id="__lib::artikelnummer5__" value="0" >
funktioniert nicht.......
« Letzte Änderung: Juli 05, 2007, 00:04:52 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #25 am: Juli 05, 2007, 16:50:02 »

Hallo dobra,

Sie könnten beim Aufbau der Seite per SSP eine globale Javascript-Variable schreiben lassen.
Das sollte dann ein JS-Array sein, das alle Artikelnummern enthält.

ZB __lib::printitemarray__
Gibt aus var m_items = new Array('itemid1', 'itemid2', 'itemid3');

In der Onclick-Funktion durchlaufen Sie dann dieses Array, holen sich dabei alle entsprechenden input's und setzten value="0".
Danach setzen Sie dann wie gehabt den angeklickten Artikel auf value="1".
Gespeichert

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

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #26 am: Juli 05, 2007, 17:36:58 »

Hallo ahe,

beim 5.x lesen fange ich (sehr) langsam an, das zu verstehen  Wink

ich setze also mit onclick in der Radiobox zuerst alle Artikel auf value="0" und dann den ausgewählten auf "1" ?

Ist ja garnicht so kompliziert, wie's im ersten Moment ausgeschaut hat (wenn ich den ssp-Code schaffe)
- hoffentlich weiß mein Code dann auch, in welcher Reihenfolge er das machen soll  Cheesy
Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #27 am: Juli 06, 2007, 08:56:02 »

Zur Verdeutlichung mal ein kleines Beispiel zum einfügen von JS mittels SSP.

Das Script fügt die globale Variable wie oben beschrieben ein.
Voraussetzung ist, dass Crossartikel in "Ergänzung 4" eingetragen sind.

Code:
<!--spmacro:module(jstest)
sub printcrossartikelarray {
    my $index = shift;
    my $anzahl = shift;
   
    if ($index <= $anzahl) {
        my $cross = ssp::get_var_article('ergaenz4', $index);
               
        ## Liste der Artikelnummern liegt in einem String vor.
        ## Deshalb hier in ein Array aufsplitten und alle Elemente in einfachen Anführungszeichen setzten
        ## damit diese Elemente dann einfach so genommen und als Javascript-Text ausgegeben werden können.
        my @crossids = split(",", $cross);
        for (my $i = 0; $i < scalar(@crossids); $i++) {
            $crossids[$i] = "'" . $crossids[$i] . "'";
        }
       
        ## Ab hier das JS ins HTML-Dokument schreiben
        my $out = qq|<script type="text/javascript">|;
        ## Hier die globale Variable anlegen.
        ## join erzeugt einen String, der alle Elemente aus @crossids enthält und sie durch ',' trennt.
        $out .= "var m_itemids = new Array(" . join(",", @crossids) . ");";
        $out .= "</script>";
        main::mprint($out);
    }
}
-->
Gespeichert

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

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #28 am: Juli 06, 2007, 16:31:11 »




ein ganz großes DANKE an ahe
Gespeichert

Seiten: 1 [2] 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