Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

JavaScript zur Berechnung der besten Kombination

Frage Entwicklung

Mitglied: FaBMiN

FaBMiN (Level 2) - Jetzt verbinden

26.03.2009, aktualisiert 15:32 Uhr, 4090 Aufrufe, 24 Kommentare

Für einen .html Produktblatt soll die beste Bundlekombination errechnet werden

Hallo zusammen,

ich suche ein Skript, welches mir aus einer gegebenen Menge bspw. 33 eine Anzahl an 20er, 10er und 5er Bundles liefert, welche immer die maximale zahl an 20er, dann 10er und dann erst 5er Bundles berücksichtigt.

am bsp. 33 sind das also 1x20er,1x10er und 1x5er
am bsp. 100 sind das also 5x20er
am bsp. 16 ist das 1x20er
am bsp. 14 ist das 1x10er und 1x5er

dürfte klar sein
kann mir da vielleicht jemand helfen?
Mitglied: godlie
26.03.2009 um 17:24 Uhr
Also ich habs nur mal grob zusammengestöpselt.

01.
function brack(amount, vpe, vpe2, vpe3) 
02.
03.
  var sp = (amount / vpe); 
04.
 
05.
  spl = amount % vpe; 
06.
  if(spl > 0) 
07.
08.
    a = Math.floor(sp); 
09.
    re = amount % vpe; 
10.
 
11.
    spl2 = re % vpe2; 
12.
    if( spl2 > 0 ) 
13.
14.
      b = Math.floor(re/vpe2); 
15.
      re2 = re % vpe2; 
16.
 
17.
      spl3 = re2 % vpe3; 
18.
      if( spl3 > 0 ) 
19.
20.
        c = Math.floor(re2/vpe3); 
21.
        if( c == "0" ) 
22.
        c = 1; 
23.
24.
      else 
25.
26.
        if(re2/vpe3 < 1) 
27.
28.
          c = 1; 
29.
30.
        else 
31.
32.
          c = re2/vpe3; 
33.
34.
35.
36.
    else 
37.
38.
        if(re/vpe2 < 1) 
39.
40.
          b = 1; 
41.
42.
        else 
43.
44.
          b = re/vpe2; 
45.
46.
47.
48.
  else 
49.
50.
    if(amount/vpe < 1) 
51.
52.
      a = 1; 
53.
54.
    else 
55.
56.
      a = amount/vpe; 
57.
58.
59.
  return a+" - "+b+" - "+c; 
60.
61.
 
62.
alert(brack(44,20,10,5));
ich glaube das geht so in deine Richtung.
Bitte warten ..
Mitglied: bastla
26.03.2009 um 17:32 Uhr
Hallo FaBMiN!

Von mir leider nur als VBScript:
01.
x = CInt(InputBox("Wieviele Einheiten?")) 
02.
 
03.
F = Int(x / 5 + .99) 
04.
Do While F > 1 
05.
    Ze = Ze + 1 
06.
    F = F - 2 
07.
Loop 
08.
Do While Ze > 1 
09.
    Zw = Zw + 1 
10.
    Ze = Ze - 2 
11.
Loop 
12.
 
13.
MsgBox Zw & " x 20er, " & Ze & " x 10er, " & F & " x 5er"
Grüße
bastla
Bitte warten ..
Mitglied: FaBMiN
27.03.2009 um 09:04 Uhr
Danke Ihr 2
ich brauchs leider als JS, weil ich es gerne für unser shopping cart auf die Page packen würde
Bitte warten ..
Mitglied: godlie
27.03.2009 um 09:09 Uhr
Das was ich dir geliefert habe ist ja javascript
sieht nur noch nicht wirklich schön aus bin grad dran das ganze zu vereinfachen.

grüße
Bitte warten ..
Mitglied: FaBMiN
27.03.2009 um 09:11 Uhr
Habs schon gesehen =) dank scheee!
Bitte warten ..
Mitglied: FaBMiN
01.04.2009 um 10:19 Uhr
Hi,

meine Anforderung hat sich ein wenig geändert und ich bekomme es einfach nicht hin!

Wie Ihr mit Sicherheit mitbekommen habt, handelt es sich hierbei um eine Art Produktblatt, aus welchem man Bundles und Lizenzen in einen Warenkorb legen kann.

Die Produkte werden auf shop.xxx.com/cgi-bin/cart übergeben.
Das Produkt an sich als ID,ID1,ID2 usw. auf shop.xxx.com/cgi-bin/cart?ID=1001&ID1=1005&ID2=1112
Die Menge als AM,AM1,AM2 usw.

Hier ein Bsp.
50x Produkt 1112
3x Produkt 1001
--> shop.xxx.com/cgi-bin/cart?ID=1112&ID1=1001&AM=50&AM1=3


Nun gelten für die Produkte 1001 bis 1003 die oben genannten Regeln.
1001 (5er Bundle)
1002 (10er Bundle)
1003 (20er Bundle)
Der Kunde trägt also in ein Textfeld eine ganze Zahl ein und das Skript soll in ein Ausgabefeld, die kleinstmöglich anzahl an Bundles zusammenstellen.
Bei 15 bspw. 1x 1001 und 1x 1002.

Gibt der Kunden nun eine Anzahl >49 bzw. >=50 ein, so soll das Produkt 1004 verwendet werden.
bspw. 55
--> shop.xxx.com/cgi-bin/cart?ID=1004&AM=55

Genauso ab einer Anzahl von >= 250 das Produkt 1005
bspw. 500
--> shop.xxx.com/cgi-bin/cart?ID=1005&AM=500


Ich weiss, dass es nicht so gradlinig umzusetzen ist - über eine Lösung würde ich mich aber trotzdem freuen
(html und js)

LG
Bitte warten ..
Mitglied: godlie
01.04.2009 um 12:11 Uhr
Hm eigentlich sieht das nicht so schlimm aus.
01.
function brack(amount, vpe, vpe2, vpe3) 
02.
03.
  var sp = (amount / vpe); 
04.
 
05.
  spl = amount % vpe; 
06.
  if(spl > 0) 
07.
08.
    a = Math.floor(sp); 
09.
    spl2 = spl % vpe2; 
10.
    if( spl2 > 0 ) 
11.
12.
      b = Math.floor(spl2/vpe2); 
13.
      spl3 = spl2 % vpe3; 
14.
      if( spl3 > 0 ) 
15.
16.
        c = Math.floor(spl3/vpe3); 
17.
        if( c == "0" ) 
18.
        c = 1; 
19.
20.
      else 
21.
22.
        if(spl3/vpe3 < 1) 
23.
24.
          c = 1; 
25.
26.
        else 
27.
28.
          c = spl3/vpe3; 
29.
30.
31.
32.
    else 
33.
34.
	alert("b "+spl/vpe2); 
35.
        if(spl/vpe2 < 1) 
36.
37.
          b = 1; 
38.
          c = 0; 
39.
40.
        else 
41.
42.
          b = spl/vpe2; 
43.
          c = 0; 
44.
45.
46.
47.
  else 
48.
49.
    if(amount/vpe < 1) 
50.
51.
      a = 1; 
52.
      b = 0; 
53.
      c = 0; 
54.
55.
    else 
56.
57.
      a = amount/vpe; 
58.
      b = 0; 
59.
      c = 0; 
60.
61.
62.
  return a+"x1003 - "+b+"x1002 - "+c+"x1001"; 
63.
64.
var url = encodeURI(window.location); 
65.
var Zeile = url.split("?"); 
66.
var param = Zeile[1].split("&"); 
67.
var ids = new Array(); 
68.
var amounts = new Array(); 
69.
 
70.
for(i=0;i<param.length;i++) 
71.
72.
  if(param[i].indexOf("ID")!= -1) 
73.
74.
    var spli = param[i].split("="); 
75.
    ids.push(spli[1]);  
76.
  } else if(param[i].indexOf("AM") != -1) { 
77.
    var spli2 = param[i].split("="); 
78.
    amounts.push(spli2[1]); 
79.
80.
81.
var products = new Array(); 
82.
for(i=0;i<ids.length;i++) 
83.
84.
  if(amounts[i] >= 50) 
85.
86.
    if(amounts[i] >= 250) 
87.
88.
      bundle = ids[i]+' Menge(n):1x1005'; 
89.
90.
    else 
91.
92.
      bundle = ids[i]+' Menge(n):1x1004'; 
93.
94.
95.
  else 
96.
97.
    bundle = ids[i]+' Menge(n):'+brack(amounts[i],20,10,5); 
98.
99.
  products.push(bundle); 
100.
101.
for(i=0;i<products.length;i++) 
102.
103.
  alert(products[i]); 
104.
}
Bitte warten ..
Mitglied: FaBMiN
01.04.2009 um 13:12 Uhr
ok =)
so wie ich das verstanden hab, binde ich das skript folgendermassen ein - bitte korregier mich, wenn ich falsch liege.

im Header wird das Skript per
01.
<script type="text/javascript" src="skript.js"></script>
ganz normal von einer externen Datei importiert =) richtig? oder gibts da ein Variablenproblem? oder wird die Funktion direkt im
01.
<form>...</form>
ausgeführt?

Im FormTextFeld
01.
<input name="amount" type="text" value="0" size="5" maxlength="3" />
wird der 'Amount', also die Anzahl eingetragen.

Dann ist allerdings auch schon wieder zappe bei mir *(
Wie muss ich die entsprechende Funktion aufrufen ?
Wie und Wo erfolgt die Ausgabe und Übergabe?
--> total überfordert!

Kannst Du mir vielleicht eine kurze html reinstellen!?
Danke =)
Bitte warten ..
Mitglied: godlie
01.04.2009 um 13:39 Uhr
Hm ich sehs gerade das was ich da gebaut habe sollte an dem Punkt ansetzen wo die URL
der Form ID=xxx&ID1=xxxx&AM=xxx&AM1=xxx lautet, also erst nach dem ganzen Formular.

Wie soll das ganze dann aussehen gibt es da ein feld für die Menge für jedes Produkt?
Blick da irgendwie noch net ganz durch an welchem Punkt das Script arbeiten muss.

Kannst mir da mal einen Ablauf geben?
Bitte warten ..
Mitglied: FaBMiN
01.04.2009 um 13:52 Uhr
na klar
hab Dir mal alles hier in einer .html zusammen gepackt =)

01.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
02.
<html xmlns="http://www.w3.org/1999/xhtml"> 
03.
<head> 
04.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
05.
<title>Unbenanntes Dokument</title> 
06.
</head> 
07.
 
08.
<body> 
09.
<table id="table1"> 
10.
  <thead> 
11.
    <tr class="odd"> 
12.
      <td class="column1"></td> 
13.
      <th scope="col" abbr="Home">5er Lizenz Bundle</th> 
14.
      <th scope="col" abbr="Home Plus">10er Lizenz Bundle</th> 
15.
      <th scope="col" abbr="Business">20er Lizenz Bundle</th> 
16.
      <th scope="col" abbr="Business">Ab 50 Lizenzen</th> 
17.
      <th scope="col" abbr="Business">Ab 250 Lizenzen</th> 
18.
    </tr> 
19.
  </thead> 
20.
  <tfoot> 
21.
  </tfoot> 
22.
  <tbody> 
23.
    <tr> 
24.
      <th scope="row" class="column1">Produkt A</th> 
25.
      <td id="td1"><span class="Stil1">&euro;100,00</span>&nbsp;/ Bundle (ID 1001) </td> 
26.
      <td id="td1"><span class="Stil1">&euro;180,00</span>&nbsp;/ Bundle (ID 1002) </td> 
27.
      <td id="td1"><span class="Stil1">&euro;300,00</span>&nbsp;/ Bundle (ID 1003) </td> 
28.
      <td id="td1"><span class="Stil1">&euro;15,00</span>&nbsp;/ Benutzer (ID 1004) </td> 
29.
      <td id="td1"><span class="Stil1">&euro;13,00</span>&nbsp;/ Benutzer (ID 1005) </td> 
30.
    </tr> 
31.
    <tr class="odd"> 
32.
      <th scope="row" class="column1">Produkt B</th> 
33.
      <td id="td1"><span class="Stil1">&euro;200,00</span>&nbsp;/ Bundle (ID 2001) </td> 
34.
      <td id="td1"><span class="Stil1">&euro;380,00</span>&nbsp;/ Bundle (ID 2002) </td> 
35.
      <td id="td1"><span class="Stil1">&euro;720,00</span>&nbsp;/ Bundle (ID 2003) </td> 
36.
      <td id="td1"><span class="Stil1">&euro;36,00</span>&nbsp;/ Benutzer (ID 2004) </td> 
37.
      <td id="td1"><span class="Stil1">&euro;34,20</span>&nbsp;/ Benutzer (ID 2005) </td> 
38.
    </tr> 
39.
  </tbody> 
40.
</table> 
41.
<form method="post" name="LIZ" action="https://shop.xxx.com/cgi-bin/cart/ml=DE?"> 
42.
<br /> 
43.
Anzahl der Lizenzen/Benutzer (Amount) 
44.
<br /> 
45.
<input name="Amount" type="text" value="0" size="5" maxlength="3" /> 
46.
<input type="submit" name="button" id="button" value="Senden" /> 
47.
</form> 
48.
</body> 
49.
</html>
so sieht die Seite aus. Es sind natürlich mehr Produkte und hinter dem ganzen liegt auch ne CSS, aber das spielt ja im Moment keine Rolle.
Ablauf:
1. Kunde trägt in "Anzahl der Lizenzen/Benutzer (Amount)" eine Lizenzzahl ein.
2. Kunde drückt 'Senden'
3. Es soll die für den Kunden günstige Möglichkeit gefunden werden, diese Lizenzzahl in den Warenkorb zu legen
a. Am Bsp. der Produkte, siehst Du, dass die Preise gestaffelt sind --> desto größer die Bestellmenge, desto geringer der Einzelpreis. Und davon soll der Kunden natürlich, ohne nachzudenken profitieren!
4. Die Produkte werden nach dem Schema shop.xxx.com/cgi-bin/cart?ID=1001&ID1=2005&AM=5&AM1=100 übergeben =)

Verstehste? Ist nich so leicht zu erklären ;)
Bitte warten ..
Mitglied: godlie
01.04.2009 um 14:24 Uhr
Hm das kann jetzt a bisserl dauern bin auf ein paar fehler draufgekommen in der Berechnung.
Bitte warten ..
Mitglied: FaBMiN
01.04.2009 um 14:26 Uhr
Hey Super!
Vielen Dank,dass Du Dir die Mühe machst =)
Bitte warten ..
Mitglied: godlie
02.04.2009 um 10:08 Uhr
sodala
also nun hier die Lösung:
01.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
02.
<html xmlns="http://www.w3.org/1999/xhtml"> 
03.
<head> 
04.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
05.
<title>Unbenanntes Dokument</title> 
06.
<script type="text/javascript"> 
07.
var amounts = new Array(); 
08.
var cnt = 0; 
09.
function brack(amount,vpe,pid,sid) { 
10.
var sub1 = 0; 
11.
var sub2 = 10; 
12.
 
13.
  if(amount > 0 ) { 
14.
	if(amount >= 50 && amount < 250) { 
15.
			amounts[sid].push("1x"+pid[cnt+3]); 
16.
		} else if(amount >= 250) { 
17.
			amounts[sid].push("1x"+pid[cnt+4]); 
18.
		/*} else { 
19.
			if(sub2 > 5 && sub1 < 11) { 
20.
			  amounts[sid].push("1x"+pid[1]); 
21.
			} else if( sub2 <= 5 ) { 
22.
			  amounts[sid].push("1x"+pid[0]); 
23.
			} else { 
24.
			  brack(sub1,vpe - sub2,pids,sid); 
25.
			}*/ 
26.
		} else { 
27.
		  if((amount / vpe) > 1) { 
28.
			amounts[sid].push(Math.floor(amount/vpe)+"x"+pid[cnt+2]); 
29.
			sub1 = amount - (Math.floor(amount/vpe)*vpe); 
30.
			sub2 = cnt == 0 ? 10 : 5; 
31.
					pids = cnt == 0 ? pid[1] : pid[0]; 
32.
			cnt++; 
33.
			if(amount % vpe != 0) { 
34.
			if(sub1 > 5 && sub1 < 11) { 
35.
			  amounts[sid].push("1x"+pid[1]); 
36.
			} else if( sub1 <= 5 ) { 
37.
			  amounts[sid].push("1x"+pid[0]); 
38.
			} else { 
39.
			  brack(sub1,vpe - sub2,pid,sid); 
40.
41.
42.
		  } else if(amount == vpe) { 
43.
			amounts[sid].push("1x"+pid[cnt+2]); 
44.
			sub1 = amount - vpe; 
45.
		  } else { 
46.
			if(amount > 5 && amount < 11) { 
47.
					  amounts[sid].push("1x"+pid[1]); 
48.
					} else if( amount <= 5 ) { 
49.
					  amounts[sid].push("1x"+pid[0]); 
50.
					} else { 
51.
					  brack(amount,vpe - sub2,pid,sid); 
52.
53.
54.
55.
56.
57.
 
58.
function calculateBundles() { 
59.
var productsAmounts = document.getElementsByName("Amount"); 
60.
var products = new Array(); 
61.
for(i=0;i<productsAmounts.length;i++) 
62.
63.
    var locAmount = productsAmounts[i].value; 
64.
    cnt = 0; 
65.
    amounts[i] = new Array();  
66.
    pids = new Array(i+"001",i+"002",i+"003",i+"004",i+"005"); 
67.
    brack(locAmount,20,pids,i); 
68.
69.
for(i=0;i<amounts.length;i++) 
70.
71.
  var bundleVal = ""; 
72.
  for(j=0;j<amounts[i].length;j++) { 
73.
    bundleVal += " "+amounts[i][j]; 
74.
75.
  var target = "bundles"+(i+1); 
76.
  document.getElementById(target).value = bundleVal; 
77.
78.
79.
</script> 
80.
</head> 
81.
<body> 
82.
<table id="table1"> 
83.
  <thead> 
84.
    <tr class="odd"> 
85.
      <td class="column1"></td> 
86.
      <th scope="col" abbr="Home">5er Lizenz Bundle</th> 
87.
      <th scope="col" abbr="Home Plus">10er Lizenz Bundle</th> 
88.
      <th scope="col" abbr="Business">20er Lizenz Bundle</th> 
89.
      <th scope="col" abbr="Business">Ab 50 Lizenzen</th> 
90.
      <th scope="col" abbr="Business">Ab 250 Lizenzen</th> 
91.
    </tr> 
92.
  </thead> 
93.
  <tfoot> 
94.
  </tfoot> 
95.
  <tbody> 
96.
    <tr> 
97.
      <th scope="row" class="column1">Produkt A</th> 
98.
      <td id="td1"><span class="Stil1">.100,00</span> / Bundle (ID 1001) </td> 
99.
      <td id="td1"><span class="Stil1">.200,00</span> / Bundle (ID 1002) </td> 
100.
      <td id="td1"><span class="Stil1">.400,00</span> / Bundle (ID 1003) </td> 
101.
      <td id="td1"><span class="Stil1">.20,00</span> / Benutzer (ID 1004) </td> 
102.
      <td id="td1"><span class="Stil1">.15,00</span> / Benutzer (ID 1005) </td> 
103.
    </tr> 
104.
    <tr class="odd"> 
105.
      <th scope="row" class="column1">Produkt B</th> 
106.
      <td id="td1"><span class="Stil1">.200,00</span> / Bundle (ID 2001) </td> 
107.
      <td id="td1"><span class="Stil1">.380,00</span> / Bundle (ID 2002) </td> 
108.
      <td id="td1"><span class="Stil1">.720,00</span> / Bundle (ID 2003) </td> 
109.
      <td id="td1"><span class="Stil1">.36,00</span> / Benutzer (ID 2004) </td> 
110.
      <td id="td1"><span class="Stil1">.34,20</span> / Benutzer (ID 2005) </td> 
111.
    </tr> 
112.
  </tbody> 
113.
</table> 
114.
<form method="post" name="LIZ" action="https://shop.xxx.com/cgi-bin/cart/ml=DE?"> 
115.
<br /> 
116.
Anzahl der Lizenzen/Benutzer (Amount) 
117.
<br /> 
118.
p1<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /> 
119.
p2<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /> 
120.
<input id="bundles1" name="bundles[]" type="text" value="" size="40"/> 
121.
<input id="bundles2" name="bundles[]" type="text" value="" size="40"/> 
122.
<input type="button" onClick="calculateBundles()" value="calculate"> 
123.
<input type="submit" name="button" id="button" value="Senden" /> 
124.
</form> 
125.
</body> 
126.
</html>
Bitte warten ..
Mitglied: FaBMiN
02.04.2009 um 10:34 Uhr
Hey Danke =) !
bei einer Kleinigkeit blicke ich allerdings noch nicht so ganz durch.
naja...eigentlich 3 kleinigkeiten.

1. bei >= 250 und >=50 soll die Anzahl nicht 1x sondern Anzahl'mal'/Amount'mal' genommen werden
und
2. und ich glaub die berechnung stimmt noch nich so ganz bei einer Anzahl zwischen 30 und 39 packt er immer ein 1004er Paket mit rein
und
3. die übergabe in Form von "https://shop.xxx.com/cgi-bin/cart/ml=DE?ID=1001&ID2=1003&AM=1&am ..." klappt nicht
Bitte warten ..
Mitglied: FaBMiN
02.04.2009 um 12:04 Uhr
und dann muss ich 'Amount' natürlich auch auf AM,AM1 usw. kriegen
Bitte warten ..
Mitglied: godlie
02.04.2009 um 12:56 Uhr
Sodala den ganzen JavascriptTeil kannst auslagern in eine Externe Datei.

01.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
02.
<html xmlns="http://www.w3.org/1999/xhtml"> 
03.
<head> 
04.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
05.
<title>Unbenanntes Dokument</title> 
06.
<script type="text/javascript"> 
07.
var amounts = new Array(); 
08.
var cnt = 0; 
09.
var ids = new Array(); 
10.
 
11.
function brack(amount,vpe,pid,sid) { 
12.
var sub1 = 0; 
13.
var sub2 = 10; 
14.
 
15.
  if(amount > 0 ) { 
16.
	if(amount >= 50 && amount < 250) { 
17.
			amounts[sid].push(amount); 
18.
			ids[sid].push(pid[cnt+3]); 
19.
		} else if(amount >= 250) { 
20.
			amounts[sid].push(amount); 
21.
			ids[sid].push(pid[cnt+4]); 
22.
		} else { 
23.
		  if((amount / vpe) > 1) { 
24.
			intID = sid == 0 ? '' : sid+1; 
25.
			amounts[sid].push(Math.floor(amount/vpe)); 
26.
			ids[sid].push(pid[2-cnt]); 
27.
			sub1 = amount - (Math.floor(amount/vpe)*vpe); 
28.
			sub2 = cnt == 0 ? 10 : 5; 
29.
			pids = cnt == 0 ? pid[1] : pid[0]; 
30.
			cnt++; 
31.
			if(amount % vpe != 0) { 
32.
			if(sub1 > 5 && sub1 < 11) { 
33.
			  amounts[sid].push(1); 
34.
			  ids[sid].push(pid[1]); 
35.
			} else if( sub1 <= 5 ) { 
36.
			  amounts[sid].push(1); 
37.
			  ids[sid].push(pid[0]); 
38.
			} else { 
39.
			  brack(sub1,vpe - sub2,pid,sid); 
40.
41.
42.
		  } else if(amount == vpe) { 
43.
			amounts[sid].push(1); 
44.
			ids[sid].push(pid[cnt+2]); 
45.
			sub1 = amount - vpe; 
46.
		  } else { 
47.
			if(amount > 5 && amount < 11) { 
48.
					  amounts[sid].push(1); 
49.
					  ids[sid].push(pid[1]); 
50.
					} else if( amount <= 5 ) { 
51.
					  amounts[sid].push(1); 
52.
					  ids[sid].push(pid[0]); 
53.
					} else { 
54.
					  brack(amount,vpe - sub2,pid,sid); 
55.
56.
57.
58.
59.
60.
 
61.
function calculateBundles() { 
62.
var productsAmounts = document.getElementsByName("Amount"); 
63.
var products = new Array(); 
64.
var idString = ""; 
65.
var amountString = ""; 
66.
for(i=0;i<productsAmounts.length;i++) 
67.
68.
    var locAmount = productsAmounts[i].value; 
69.
    cnt = 0; 
70.
    amounts[i] = new Array();  
71.
    ids[i] = new Array(); 
72.
    pids = new Array(i+1+"001",i+1+"002",i+1+"003",i+1+"004",i+1+"005"); 
73.
    brack(locAmount,20,pids,i); 
74.
75.
for(i=0;i<ids.length;i++) 
76.
77.
  var bundleVal = ""; 
78.
  for(j=0;j<ids[i].length;j++) { 
79.
    a = j==0 ? '' : j; 
80.
    b = i==0 ? i : j+i*ids[i].length+1; 
81.
    c = i==0 ? a : b; 
82.
    bundleVal += "&ID"+c+"="+ids[i][j]; 
83.
84.
  idString += bundleVal; 
85.
86.
for(i=0;i<amounts.length;i++) 
87.
88.
  var bundleVal = ""; 
89.
  for(j=0;j<amounts[i].length;j++) { 
90.
    a = j==0 ? '' : j; 
91.
    b = i==0 ? i : j+i*ids[i].length+1; 
92.
    c = i==0 ? a : b; 
93.
    bundleVal += "&AM"+c+"="+amounts[i][j]; 
94.
95.
  amountString += bundleVal; 
96.
97.
document.getElementById("bundles1").value = idString; 
98.
document.getElementById("bundles2").value = amountString; 
99.
var target = "https://shop.xxx.com/cgi-bin/cart/ml=DE?"+idString.substr(1,idString.length)+amountString; 
100.
document.LIZ.action = target; 
101.
document.LIZ.submit(); 
102.
103.
</script> 
104.
</head> 
105.
<body> 
106.
<table id="table1"> 
107.
  <thead> 
108.
    <tr class="odd"> 
109.
      <td class="column1"></td> 
110.
      <th scope="col" abbr="Home">5er Lizenz Bundle</th> 
111.
      <th scope="col" abbr="Home Plus">10er Lizenz Bundle</th> 
112.
      <th scope="col" abbr="Business">20er Lizenz Bundle</th> 
113.
      <th scope="col" abbr="Business">Ab 50 Lizenzen</th> 
114.
      <th scope="col" abbr="Business">Ab 250 Lizenzen</th> 
115.
    </tr> 
116.
  </thead> 
117.
  <tfoot> 
118.
  </tfoot> 
119.
  <tbody> 
120.
    <tr> 
121.
      <th scope="row" class="column1">Produkt A</th> 
122.
      <td id="td1"><span class="Stil1">.100,00</span> / Bundle (ID 1001) </td> 
123.
      <td id="td1"><span class="Stil1">.200,00</span> / Bundle (ID 1002) </td> 
124.
      <td id="td1"><span class="Stil1">.400,00</span> / Bundle (ID 1003) </td> 
125.
      <td id="td1"><span class="Stil1">.20,00</span> / Benutzer (ID 1004) </td> 
126.
      <td id="td1"><span class="Stil1">.15,00</span> / Benutzer (ID 1005) </td> 
127.
    </tr> 
128.
    <tr class="odd"> 
129.
      <th scope="row" class="column1">Produkt B</th> 
130.
      <td id="td1"><span class="Stil1">.200,00</span> / Bundle (ID 2001) </td> 
131.
      <td id="td1"><span class="Stil1">.380,00</span> / Bundle (ID 2002) </td> 
132.
      <td id="td1"><span class="Stil1">.720,00</span> / Bundle (ID 2003) </td> 
133.
      <td id="td1"><span class="Stil1">.36,00</span> / Benutzer (ID 2004) </td> 
134.
      <td id="td1"><span class="Stil1">.34,20</span> / Benutzer (ID 2005) </td> 
135.
    </tr> 
136.
  </tbody> 
137.
</table> 
138.
<form method="post" name="LIZ" action="https://shop.xxx.com/cgi-bin/cart/ml=DE?"> 
139.
<br /> 
140.
Anzahl der Lizenzen/Benutzer (Amount) 
141.
<br /> 
142.
p1<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /> 
143.
p2<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /> 
144.
<input id="bundles1" name="bundles[]" type="text" value="" size="40"/> 
145.
<input id="bundles2" name="bundles[]" type="text" value="" size="40"/> 
146.
<input type="button" onClick="calculateBundles()" value="calculate"> 
147.
<input type="submit" name="button" id="button" value="Senden" /> 
148.
</form> 
149.
</body> 
150.
</html>
ah grml hab noch fehler gefunden bin am überarbeiten.....
so ausgebessert
Bitte warten ..
Mitglied: FaBMiN
02.04.2009 um 13:49 Uhr
klappt leider immer noch nicht so richtig

1. ich hab leider einen kleinen Fehler in der Beschreibung gemacht!
Die Produkt sind folgende
9001,9002,9003,...,9011,9012,9013,...,9021,9022,...

ich hab das so versucht
01.
for(i=0;i<productsAmounts.length;i++) 
02.
03.
    var locAmount = productsAmounts[i].value; 
04.
    cnt = 0; 
05.
    amounts[i] = new Array();  
06.
    ids[i] = new Array(); 
07.
    pids = new Array("90"+i+"1","90"+i+"2","90"+i+"3","90"+i+"4","90"+i+"5"); 
08.
    brack(locAmount,20,pids,i); 
09.
}
scheint auch zu klappen, allerdings hast Du da immer noch ein i+1 reingepackt und ich versteh nicht ganz warum!?
01.
pids = new Array(i+1+"001",i+1+"002",i+1+"003",i+1+"004",i+1+"005"); 
2. mit der Übergabe
er gibt immer: ID=9002&ID2=9013
statt: ID=9002&ID1=9013
-> er macht also immer ID und dann ID2

oder er macht
&ID=9003&ID1=9002&ID2=9001&ID2=9013 und &AM=1&AM1=1&AM2=1&AM2=1

:*( *verzweifel*

hier mal meine Version
01.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
02.
<html xmlns="http://www.w3.org/1999/xhtml"> 
03.
<head> 
04.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
05.
<title>Unbenanntes Dokument</title> 
06.
<script type="text/javascript"> 
07.
var amounts = new Array(); 
08.
var cnt = 0; 
09.
var ids = new Array(); 
10.
 
11.
function brack(amount,vpe,pid,sid) { 
12.
var sub1 = 0; 
13.
var sub2 = 10; 
14.
 
15.
  if(amount > 0 ) { 
16.
	if(amount >= 50 && amount < 250) { 
17.
			amounts[sid].push(amount); 
18.
			ids[sid].push(pid[cnt+3]); 
19.
		} else if(amount >= 250) { 
20.
			amounts[sid].push(amount); 
21.
			ids[sid].push(pid[cnt+4]); 
22.
		} else { 
23.
		  if((amount / vpe) > 1) { 
24.
			intID = sid == 0 ? '' : sid+1; 
25.
			amounts[sid].push(Math.floor(amount/vpe)); 
26.
			ids[sid].push(pid[2-cnt]); 
27.
			sub1 = amount - (Math.floor(amount/vpe)*vpe); 
28.
			sub2 = cnt == 0 ? 10 : 5; 
29.
			pids = cnt == 0 ? pid[1] : pid[0]; 
30.
			cnt++; 
31.
			if(amount % vpe != 0) { 
32.
			if(sub1 > 5 && sub1 < 11) { 
33.
			  amounts[sid].push(1); 
34.
			  ids[sid].push(pid[1]); 
35.
			} else if( sub1 <= 5 ) { 
36.
			  amounts[sid].push(1); 
37.
			  ids[sid].push(pid[0]); 
38.
			} else { 
39.
			  brack(sub1,vpe - sub2,pid,sid); 
40.
41.
42.
		  } else if(amount == vpe) { 
43.
			amounts[sid].push(1); 
44.
			ids[sid].push(pid[cnt+2]); 
45.
			sub1 = amount - vpe; 
46.
		  } else { 
47.
			if(amount > 5 && amount < 11) { 
48.
					  amounts[sid].push(1); 
49.
					  ids[sid].push(pid[1]); 
50.
					} else if( amount <= 5 ) { 
51.
					  amounts[sid].push(1); 
52.
					  ids[sid].push(pid[0]); 
53.
					} else { 
54.
					  brack(amount,vpe - sub2,pid,sid); 
55.
56.
57.
58.
59.
60.
 
61.
function calculateBundles() { 
62.
var productsAmounts = document.getElementsByName("Amount"); 
63.
var products = new Array(); 
64.
var idString = ""; 
65.
var amountString = ""; 
66.
for(i=0;i<productsAmounts.length;i++) 
67.
68.
    var locAmount = productsAmounts[i].value; 
69.
    cnt = 0; 
70.
    amounts[i] = new Array();  
71.
    ids[i] = new Array(); 
72.
    pids = new Array("90"+i+"1","90"+i+"2","90"+i+"3","90"+i+"4","90"+i+"5"); 
73.
    brack(locAmount,20,pids,i); 
74.
75.
for(i=0;i<ids.length;i++) 
76.
77.
  var bundleVal = ""; 
78.
  for(j=0;j<ids[i].length;j++) { 
79.
    a = j==0 ? '' : j; 
80.
    b = i==0 ? i : j+i*ids[i].length+1; 
81.
    c = i==0 ? a : b; 
82.
    bundleVal += "&ID"+c+"="+ids[i][j]; 
83.
84.
  idString += bundleVal; 
85.
86.
for(i=0;i<amounts.length;i++) 
87.
88.
  var bundleVal = ""; 
89.
  for(j=0;j<amounts[i].length;j++) { 
90.
    a = j==0 ? '' : j; 
91.
    b = i==0 ? i : j+i*ids[i].length+1; 
92.
    c = i==0 ? a : b; 
93.
    bundleVal += "&AM"+c+"="+amounts[i][j]; 
94.
95.
  amountString += bundleVal; 
96.
97.
document.getElementById("bundles1").value = idString; 
98.
document.getElementById("bundles2").value = amountString; 
99.
var target = "https://shop.xxx.com/cgi-bin/cart?"+idString.substr(1,idString.length)+amountString; 
100.
document.LIZ.action = target; 
101.
document.LIZ.submit(); 
102.
103.
</script> 
104.
</head> 
105.
<body> 
106.
<table id="table1"> 
107.
  <thead> 
108.
    <tr class="odd"> 
109.
      <td class="column1"></td> 
110.
      <th scope="col" abbr="Home">5er Lizenz Bundle</th> 
111.
      <th scope="col" abbr="Home Plus">10er Lizenz Bundle</th> 
112.
      <th scope="col" abbr="Business">20er Lizenz Bundle</th> 
113.
      <th scope="col" abbr="Business">Ab 50 Lizenzen</th> 
114.
      <th scope="col" abbr="Business">Ab 250 Lizenzen</th> 
115.
    </tr> 
116.
  </thead> 
117.
  <tfoot> 
118.
  </tfoot> 
119.
  <tbody> 
120.
    <tr> 
121.
      <th scope="row" class="column1">Produkt A</th> 
122.
      <td id="td1"><span class="Stil1">.100,00</span> / Bundle (ID 9001) </td> 
123.
      <td id="td1"><span class="Stil1">.200,00</span> / Bundle (ID 9002) </td> 
124.
      <td id="td1"><span class="Stil1">.400,00</span> / Bundle (ID 9003) </td> 
125.
      <td id="td1"><span class="Stil1">.20,00</span> / Benutzer (ID 9004) </td> 
126.
      <td id="td1"><span class="Stil1">.15,00</span> / Benutzer (ID 9005) </td> 
127.
    </tr> 
128.
    <tr class="odd"> 
129.
      <th scope="row" class="column1">Produkt B</th> 
130.
      <td id="td1"><span class="Stil1">.200,00</span> / Bundle (ID 9011) </td> 
131.
      <td id="td1"><span class="Stil1">.380,00</span> / Bundle (ID 9012) </td> 
132.
      <td id="td1"><span class="Stil1">.720,00</span> / Bundle (ID 9013) </td> 
133.
      <td id="td1"><span class="Stil1">.36,00</span> / Benutzer (ID 9014) </td> 
134.
      <td id="td1"><span class="Stil1">.34,20</span> / Benutzer (ID 9015) </td> 
135.
    </tr> 
136.
  </tbody> 
137.
</table> 
138.
<form method="post" name="LIZ" action="https://shop.xxx.com.com/cgi-bin/cart?"> 
139.
<br /> 
140.
Anzahl der Lizenzen/Benutzer (Amount) 
141.
<br /> 
142.
p1<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /> 
143.
p2<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /> 
144.
<input id="bundles1" name="bundles[]" type="hidden" value="" size="40"/> 
145.
<input id="bundles2" name="bundles[]" type="hidden" value="" size="40"/> 
146.
<input type="button" onClick="calculateBundles()" value="In den Warenkorb legen"> 
147.
<!--<input type="submit" name="button" id="button" value="Senden" />--> 
148.
</form> 
149.
</body> 
150.
</html>
die nächste Frage wäre dann: Es sind natürlich nicht nur 2 Produkte, die in den Warenkorb gelegt werden sollen, sonder insgesamt 6 Wie erweitere ich das ganze?
Wer will ein Eis?
Bitte warten ..
Mitglied: godlie
02.04.2009 um 14:54 Uhr
Sodala da ist jetzt nur der javascriptteil.
Die Erweiterung kommt mit mehr input Feldern
und zwar die die sich da <input id="Amount[]" name="Amount" schimpfen
Der Code selbst dürfte sich dann schon durchgraben.

01.
var amounts = new Array(); 
02.
var cnt = 0; 
03.
var ids = new Array(); 
04.
 
05.
function brack(amount,vpe,pid,sid) { 
06.
var sub1 = 0; 
07.
var sub2 = 10; 
08.
  if(amount > 0 ) { 
09.
	if(amount >= 50 && amount < 250) { 
10.
			amounts[sid].push(amount); 
11.
			ids[sid].push(pid[cnt+3]); 
12.
		} else if(amount >= 250) { 
13.
			amounts[sid].push(amount); 
14.
			ids[sid].push(pid[cnt+4]); 
15.
		} else { 
16.
		  if((amount / vpe) > 1) { 
17.
			intID = sid == 0 ? '' : sid+1; 
18.
			amounts[sid].push(Math.floor(amount/vpe)); 
19.
			ids[sid].push(pid[2-cnt]); 
20.
			sub1 = amount - (Math.floor(amount/vpe)*vpe); 
21.
			sub2 = cnt == 0 ? 10 : 5; 
22.
			pids = cnt == 0 ? pid[1] : pid[0]; 
23.
			cnt++; 
24.
			if(amount % vpe != 0) { 
25.
			if(sub1 > 5 && sub1 < 11) { 
26.
			  amounts[sid].push(1); 
27.
			  ids[sid].push(pid[1]); 
28.
			} else if( sub1 <= 5 ) { 
29.
			  amounts[sid].push(1); 
30.
			  ids[sid].push(pid[0]); 
31.
			} else { 
32.
			  brack(sub1,vpe - sub2,pid,sid); 
33.
34.
35.
		  } else if(amount == vpe) { 
36.
			amounts[sid].push(1); 
37.
			ids[sid].push(pid[cnt+2]); 
38.
			sub1 = amount - vpe; 
39.
		  } else { 
40.
			if(amount > 5 && amount < 11) { 
41.
					  amounts[sid].push(1); 
42.
					  ids[sid].push(pid[1]); 
43.
					} else if( amount <= 5 ) { 
44.
					  amounts[sid].push(1); 
45.
					  ids[sid].push(pid[0]); 
46.
					} else { 
47.
					  brack(amount,vpe - sub2,pid,sid); 
48.
49.
50.
51.
52.
53.
 
54.
function createURL(arr,description) { 
55.
  cnter = 0; 
56.
  target = ""; 
57.
  for(i=0;i<arr.length;i++) 
58.
59.
    var bundleVal = ""; 
60.
    for(j=0;j<arr[i].length;j++) { 
61.
      c = cnter == 0 ? '' : cnter; 
62.
      bundleVal += "&"+description+c+"="+arr[i][j]; 
63.
      cnter++; 
64.
65.
    target += bundleVal; 
66.
67.
  return target; 
68.
69.
 
70.
function calculateBundles() { 
71.
var productsAmounts = document.getElementsByName("Amount"); 
72.
var products = new Array(); 
73.
var idString = ""; 
74.
var amountString = ""; 
75.
for(i=0;i<productsAmounts.length;i++) 
76.
77.
    var locAmount = productsAmounts[i].value; 
78.
    cnt = 0; 
79.
    amounts[i] = new Array();  
80.
    ids[i] = new Array(); 
81.
    pids = new Array(); 
82.
    for(c=1;c < 24;c++) { 
83.
      pids.push(9000+c); 
84.
85.
    brack(locAmount,20,pids,i); 
86.
87.
idString = createURL(ids,"ID"); 
88.
amountString = createURL(amounts,"AM"); 
89.
document.getElementById("bundles1").value = idString; 
90.
document.getElementById("bundles2").value = amountString; 
91.
var target = "https://shop.xxx.com/cgi-bin/cart/ml=DE?"+idString.substr(1,idString.length)+amountString; 
92.
document.LIZ.action = target; 
93.
//document.LIZ.submit(); 
94.
}
Bitte warten ..
Mitglied: FaBMiN
02.04.2009 um 15:25 Uhr
ein weiteres kleines Problemchen oder eher 2 =D

der String der übergeben muss, muss von min nach max gehen, also
01.
ID=9001&ID1=9003&ID2=9004
und nicht
01.
ID=9005&ID1=9001&ID2=9002
also chronologisch
genauso natürlich auch die Mengen/Amounts/AM, da diesen sich auf die Ziffern nach den IDs berufen
ID1 und AM1
ID5 und AM5

das zweite Problemchen wäre...
die Produkte sind
9001,9002,9003,9004,9005, 9011,9012,...9015, 9021,9022,...,9025,...,9054,9055
leider wirft er mir nur 900x Produkte aus :*(
Bitte warten ..
Mitglied: godlie
02.04.2009 um 15:43 Uhr
ähm warum müssen die bitte chronologisch sein?
naja das ist auch klar das er dir nur 900x Produkte auswirft. is ja auch nur für 4 ausgelegt.

Wenn du mir jetzt mal erklärst was du genau brauchst dann kann ich da evtl. was machen.

Wieso sind die Produkte nun auf einmal 9001 - 9055? vorher wars noch 1001-1005........
Bitte warten ..
Mitglied: FaBMiN
02.04.2009 um 16:00 Uhr
Also erstmal Vielen Dank für die Mühe, die Du Dir gemacht hast.
Ich hatte Anfang nicht gedacht, dass Du mir eine kurze Vorschlage bastelst und ich diese dann anpassen kann. Deswegen war das ganze ein wenig unpräzise.

Also die Produkte sind.
9001-9005
9011-9015
9021-9025
9031-9035
9041-9045
9051-9055


Das ganze muss chronologisch übergeben werden, weil unser Shopsystem, welches dahinter sitzt, verlagt einfach so eine Übergabe.
I'm SORRY
Bitte warten ..
Mitglied: godlie
03.04.2009 um 09:32 Uhr
So jetzt glaub ich hab ich es falls sich die Anforderungen icht odch noch ändern ...

01.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
02.
<html xmlns="http://www.w3.org/1999/xhtml"> 
03.
<head> 
04.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
05.
<title>Unbenanntes Dokument</title> 
06.
<script type="text/javascript"> 
07.
var amounts = new Array(); 
08.
var cnt = 0; 
09.
var ids = new Array(); 
10.
 
11.
function brack(amount,vpe,pid,sid) { 
12.
var sub1 = 0; 
13.
var sub2 = 10; 
14.
  if(amount > 0 ) { 
15.
	if(amount >= 50 && amount < 250) { 
16.
			amounts[sid].push(amount); 
17.
			ids[sid].push(pid[cnt+3]); 
18.
		} else if(amount >= 250) { 
19.
			amounts[sid].push(amount); 
20.
			ids[sid].push(pid[cnt+4]); 
21.
		} else { 
22.
		  if((amount / vpe) > 1) { 
23.
			intID = sid == 0 ? '' : sid+1; 
24.
			amounts[sid].push(Math.floor(amount/vpe)); 
25.
			ids[sid].push(pid[2-cnt]); 
26.
			sub1 = amount - (Math.floor(amount/vpe)*vpe); 
27.
			sub2 = cnt == 0 ? 10 : 5; 
28.
			cnt++; 
29.
			if(amount % vpe != 0) { 
30.
			if(sub1 > 5 && sub1 < 11) { 
31.
			  amounts[sid].push(1); 
32.
			  ids[sid].push(pid[1]); 
33.
			} else if( sub1 <= 5 ) { 
34.
			  amounts[sid].push(1); 
35.
			  ids[sid].push(pid[0]); 
36.
			} else { 
37.
			  brack(sub1,vpe - sub2,pid,sid); 
38.
39.
40.
		  } else if(amount == vpe) { 
41.
			amounts[sid].push(1); 
42.
			ids[sid].push(pid[cnt+2]); 
43.
			sub1 = amount - vpe; 
44.
		  } else { 
45.
			if(amount > 5 && amount < 11) { 
46.
					  amounts[sid].push(1); 
47.
					  ids[sid].push(pid[1]); 
48.
					} else if( amount <= 5 ) { 
49.
					  amounts[sid].push(1); 
50.
					  ids[sid].push(pid[0]); 
51.
					} else { 
52.
					  brack(amount,vpe - sub2,pid,sid); 
53.
54.
55.
56.
57.
58.
 
59.
function createURI() { 
60.
  var arr = new Array(); 
61.
  var idString = ""; 
62.
  var amountString=""; 
63.
  for(var i=0; i < ids.length; i++) 
64.
65.
    for( var h=0; h < ids[i].length; h++)  
66.
    arr.push(ids[i][h]+"#"+amounts[i][h]); 
67.
68.
  arr = arr.sort(); 
69.
  var cnt = 0; 
70.
  for(var i=0; i < arr.length; i++) 
71.
72.
    if(arr[i] != "#") { 
73.
      var tpart = arr[i].split("#"); 
74.
      var tIds = tpart[0].split(","); 
75.
      var tAms = tpart[1].split(","); 
76.
      for(var j=0; j < tIds.length; j++) { 
77.
        alert(tIds[j]+" - "+tAms[j]); 
78.
	c = cnt == 0 ? '' : cnt; 
79.
	idString += "&ID"+c+"="+tIds[j]; 
80.
        amountString += "&AM"+c+"="+tAms[j]; 
81.
	cnt++; 
82.
83.
84.
85.
  return  "https://shop.xxx.com/cgi-bin/cart/ml=DE?"+idString.substring(1)+amountString; 
86.
87.
 
88.
function createPIDS() { 
89.
  var pids_ = new Array(); 
90.
  for(var j=0;j<6;j++) { 
91.
    pids_[j] = new Array(4);  
92.
    for(var i=0;i<5;i++) { 
93.
      pids_[j][i] = i+1+j*10+9000; 
94.
95.
96.
  return pids_; 
97.
98.
 
99.
function calculateBundles() { 
100.
  var productsAmounts = document.getElementsByName("Amount"); 
101.
  for(var i=0;i<productsAmounts.length;i++) 
102.
103.
    var locAmount = productsAmounts[i].value; 
104.
    cnt = 0; 
105.
    amounts[i] = new Array();   
106.
    ids[i] = new Array();  
107.
    pids = createPIDS(); 
108.
    brack(locAmount,20,pids[i],i); 
109.
110.
  document.LIZ.action = createURI(); 
111.
  //document.LIZ.submit(); 
112.
113.
</script> 
114.
</head> 
115.
<body> 
116.
<form method="post" name="LIZ" action="https://shop.xxx.com/cgi-bin/cart/ml=DE?"> 
117.
<table id="table1"> 
118.
  <thead> 
119.
    <tr class="odd"> 
120.
      <td class="column1"></td> 
121.
      <th scope="col" abbr="Home">5er Lizenz Bundle</th> 
122.
      <th scope="col" abbr="Home Plus">10er Lizenz Bundle</th> 
123.
      <th scope="col" abbr="Business">20er Lizenz Bundle</th> 
124.
      <th scope="col" abbr="Business">Ab 50 Lizenzen</th> 
125.
      <th scope="col" abbr="Business">Ab 250 Lizenzen</th> 
126.
    </tr> 
127.
  </thead> 
128.
  <tfoot> 
129.
  </tfoot> 
130.
  <tbody> 
131.
	<tr><th scope="row" class="column1">Produkt</th><td id="td1"><span class="Stil1">100</span> / Bundle (ID 9001) </td> 
132.
	<td id="td1"><span class="Stil1">200</span> / Bundle (ID 9002) </td> 
133.
 
134.
	<td id="td1"><span class="Stil1">300</span> / Bundle (ID 9003) </td> 
135.
	<td id="td1"><span class="Stil1">400</span> / Bundle (ID 9004) </td> 
136.
	<td id="td1"><span class="Stil1">500</span> / Bundle (ID 9005) </td> 
137.
	</tr><tr><td colspan="5">Menge:<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /></td></tr><tr> 
138.
	<tr><th scope="row" class="column1">Produkt</th><td id="td1"><span class="Stil1">100</span> / Bundle (ID 9011) </td> 
139.
 
140.
	<td id="td1"><span class="Stil1">200</span> / Bundle (ID 9012) </td> 
141.
	<td id="td1"><span class="Stil1">300</span> / Bundle (ID 9013) </td> 
142.
	<td id="td1"><span class="Stil1">400</span> / Bundle (ID 9014) </td> 
143.
	<td id="td1"><span class="Stil1">500</span> / Bundle (ID 9015) </td> 
144.
	</tr><tr><td colspan="5">Menge:<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /></td></tr><tr> 
145.
 
146.
	<tr><th scope="row" class="column1">Produkt</th><td id="td1"><span class="Stil1">100</span> / Bundle (ID 9021) </td> 
147.
	<td id="td1"><span class="Stil1">200</span> / Bundle (ID 9022) </td> 
148.
	<td id="td1"><span class="Stil1">300</span> / Bundle (ID 9023) </td> 
149.
	<td id="td1"><span class="Stil1">400</span> / Bundle (ID 9024) </td> 
150.
 
151.
	<td id="td1"><span class="Stil1">500</span> / Bundle (ID 9025) </td> 
152.
	</tr><tr><td colspan="5">Menge:<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /></td></tr><tr> 
153.
	<tr><th scope="row" class="column1">Produkt</th><td id="td1"><span class="Stil1">100</span> / Bundle (ID 9031) </td> 
154.
	<td id="td1"><span class="Stil1">200</span> / Bundle (ID 9032) </td> 
155.
	<td id="td1"><span class="Stil1">300</span> / Bundle (ID 9033) </td> 
156.
 
157.
	<td id="td1"><span class="Stil1">400</span> / Bundle (ID 9034) </td> 
158.
	<td id="td1"><span class="Stil1">500</span> / Bundle (ID 9035) </td> 
159.
	</tr><tr><td colspan="5">Menge:<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /></td></tr><tr> 
160.
	<tr><th scope="row" class="column1">Produkt</th><td id="td1"><span class="Stil1">100</span> / Bundle (ID 9041) </td> 
161.
	<td id="td1"><span class="Stil1">200</span> / Bundle (ID 9042) </td> 
162.
 
163.
	<td id="td1"><span class="Stil1">300</span> / Bundle (ID 9043) </td> 
164.
	<td id="td1"><span class="Stil1">400</span> / Bundle (ID 9044) </td> 
165.
	<td id="td1"><span class="Stil1">500</span> / Bundle (ID 9045) </td> 
166.
	</tr><tr><td colspan="5">Menge:<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /></td></tr><tr> 
167.
	<tr><th scope="row" class="column1">Produkt</th><td id="td1"><span class="Stil1">100</span> / Bundle (ID 9051) </td> 
168.
 
169.
	<td id="td1"><span class="Stil1">200</span> / Bundle (ID 9052) </td> 
170.
	<td id="td1"><span class="Stil1">300</span> / Bundle (ID 9053) </td> 
171.
	<td id="td1"><span class="Stil1">400</span> / Bundle (ID 9054) </td> 
172.
	<td id="td1"><span class="Stil1">500</span> / Bundle (ID 9055) </td> 
173.
	</tr><tr><td colspan="5">Menge:<input id="Amount[]" name="Amount" type="text" value="0" size="5" maxlength="3" /></td></tr><tr> 
174.
  </tbody> 
175.
</table> 
176.
<br /> 
177.
Anzahl der Lizenzen/Benutzer (Amount) 
178.
<br /> 
179.
<input type="button" onClick="calculateBundles()" value="calculate"> 
180.
</form> 
181.
</body> 
182.
</html>
Bitte warten ..
Mitglied: FaBMiN
03.04.2009 um 09:46 Uhr
Guten Morgen
vielen Dank!
Wenn wir jetzt noch die Ausgabe von einem eigenen PopUp in ein Textfeld bekommen, dann bin ich glücklich! =D
Dann funktioniert nämlich auch die übergabe in php ordentlich!

Vielen Dank nochmal
Bitte warten ..
Mitglied: godlie
03.04.2009 um 09:59 Uhr
Ich kann dir nciht folgen was meinst du? das was da in der textbox ausgegeb wird kannst durch löschen der Zeile 77 beseitigen.
danach wird die Form action url auf den entsprechenden link gelegt und wenn die bei der zeile 111 die // wegmachst dann wird die form sogar submitted.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
JavaScript
gelöst Range (Slider) Javascript mit Plus-Minus Buttons (3)

Frage von internet2107 zum Thema JavaScript ...

Sicherheits-Tools
gelöst Gutes einfach zu bedienendes VPN gesucht - am besten kostenlos (19)

Frage von power-user zum Thema Sicherheits-Tools ...

Viren und Trojaner
Ransomware-Krypto Trojaner, welcher Virenscanner erkennt am besten ? (22)

Frage von hansdampf zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...