Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: FaBMiN

FaBMiN (Level 2) - Jetzt verbinden

26.03.2009, aktualisiert 15:32 Uhr, 4151 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 ..
Ähnliche Inhalte
Server-Hardware
Klimaanlagen Berechnung
gelöst Frage von TheOnlyOneServer-Hardware7 Kommentare

Hallo zusammen, wir betreiben seit 2008 ein Rechenzentrum das damals von einer externen Firma geplant wurde. Hierbei stehen sich ...

Ausbildung
Berechnung Digitalisierung
gelöst Frage von AzubineAusbildung9 Kommentare

Guten Morgen, ich befinde mich in Umschulung zur FISI und werde meine Prüfung diesen Winter ablegen. Im Rahmen der ...

Microsoft Office
Berechnung KW in Excel
gelöst Frage von TjelvarMicrosoft Office1 Kommentar

Hallo Zusammen, ich wurde heute vom kfm. Leiter meines Arbeitgebers darauf hingewiesen, dass Excel bei der Berechnung der KW ...

Netzwerke
Ethernet-Segment MTU Berechnung
gelöst Frage von pranclevenNetzwerke

Hallo Forum, habe ein paar Fragen zu folgenden Aufgaben. Nun wurden die Aufgaben bearbeitet: 1) IPv4-Header = 20 Bytes, ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++27 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...