Zur Navigation

Übernahme in den Warenkorb funktioniert nicht

1 Peter

Hallo,

habe Probleme, das der Artikel in den Warenkorb richtig übernommen wird.
Problem 1:
Übernahme des Grundpreises
Problem 2:
Berechnung für Zuschläge
Problem 3:
Ermittlung des Gesamtpreises.

www.windeko.de/php/daten09.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Jalousie 25 mm</title>
<script type="text/javascript">
    function ShowImage(dessin)
     {
       document.getElementById('image').innerHTML = '<img src="' + dessin.substring(0,5) + '.gif" alt="">';
     }
</script>

 <?php
   include "connect.inc.php";
   ?>
<script type="text/javascript"> 
<!-- 
var retab=0; 
document.onkeydown=function(e){ 
txt=document.jalou; 
if(!e)e=window.event; 
code=(e.keyCode)?e.keyCode:e.which; 
el=(e.srcElement)?e.srcElement:e.target; 
if(el.tabIndex){ 
tab=Number(el.tabIndex); 
} 
if(code==13){ 
if(tab==txt.length-1){ 
alert('Bitte Tab statt Enter'); 
} 
else{ 
for (var i=0;i<txt.length;i++){ 
if(Number(txt[i].tabIndex)==(tab+1)){ 
txt[i].focus(); 
} 
} 
} 
retab=1 
return false; 
} 
else retab=0; 
} 
//--> 
</script>
<script type="text/javascript">
  if(!parent.xaranshopframesetgeladen)
  {
    ziel = "shop.html?" + document.URL;
    parent.location.replace(ziel);
  }
</script>
<script type="text/javascript">
                    artikel1 = new Object;
artikel1.id = 2;
artikel1.bezeichnung = "Ma&szlig;jalousie 25 mm";
artikel1.kurzbeschreibung = "<FONT color=#ff0000>Maßanfertigung ! Kein Umtausch oder Rückgabe !</FONT>";
artikel1.abbildung = "";
artikel1.artnr = "jalou25";
artikel1.mengeneinheit = "Stück";
artikel1.preis = 69.00;
artikel1.mwst = 1;
artikel1.gewicht = 0.00;
artikel1.versandkosten = 0.00;
artikel1.mindestbestellmenge = 0.00;
artikel1.maximalbestellmenge = 0.00;
artikel1.mindermengenzuschlag = 0.00;
artikel1.staffelvorh = "nein";
artikel1.variantebezeichnung1 = "Breite :";
artikel1.variantebezeichnung2 = "H&ouml;he  :";
artikel1.variantebezeichnung3 = "spezielle Ausführung:";
artikel1.variantevorh1 = "nein";
artikel1.variantevorh2 = "nein";
artikel1.variantevorh3 = "nein";
artikel1.benutzerdefiniert1 = "399&&2201";
artikel1.benutzerdefiniert2 = "399&&3001";
artikel1.benutzerdefiniert3 = "";

                    </script>  

</head> 
<body class="hintergrund">

<?php
  // lokale Variablen setzen
  $vars = array("EinB", "breite", "EinH", "hoch", "pg", "preis", "dessin", "sf", "bedien", "variante1_1", "variante2_1", "variante3_1");
    //Array fuer dessin setzen
    $dessins = array('20000', '01501', '09000 weiss', '01060', '80120', '05110', '73441', '90601', '90801', '70101', '01690', '73281', '01670', '01680', '05761', '01580', '02110', '01990 gold metallic', '19260', '05180 zinkgelb', '01940 ginstergelb', '00430 maisgelb', '01790 hellrotorange', '05781', '73321', '01820 beigerot terracotta hell', '92941', '01860 rotorange', '02000', '04750 signalrot', '01870 bordeaux violett', '02050 hellrosa', '73361', '04900 glitzer violett', '10370 hellviolett metallic', '05670', '71440', '05920', '02040', '05791', '73461', '08840', '04910', '07600', '92911', '05170', '05710', '36781', '01780', '07760', '19230', '71620', '66030', '92881', '01950', '20070', '92921', '07050', '20110', '07100', '05380', '20830 perlweiss', '48061', '73251', '20050 beige', '90811', '02100', '02120', '01170', '01640');
  foreach ($vars as $var)
    $$var = $_POST[$var];

  if ($sender)
    printf("Die Daten wurden von %s aus verschickt.",
           htmlentities($sender));
   if (!isset($breite))
     $breite = '60'; 
   if (!isset($hoch))
     $hoch = '80';  
   /*if (!isset($pg))
     $pg = '0';  */  
   if (!isset($preis))
     $preis = '69';  
   if (!isset($variante1_1))
     $variante1_1 = $EinB;    
   if (!isset($variante2_1))
     $variante2_1 = $EinB;  
   if (!isset($sf))
    $sf = 'false';
   if (!isset($_POST['dessin'])) {
    $dessinimage = '20000';
  } else {
    $dessinimage = $_POST['dessin'];
  }
  // Datenbankabfrage
   $hochpg = $hoch + substr($_POST['dessin'], 4, 1);
   $gp = "h" . $hochpg;

   $sqlab= "select breite, $gp from jalou";  
   $sqlab .= " where breite like '" . $breite . "%'";

   $res = mysql_query($sqlab) OR die(mysql_error());
   $num = mysql_num_rows($res);
   if ($num==0) echo "keine passenden Datensätze gefunden". "<br>";

   while ($dsatz = mysql_fetch_assoc($res))
   {
      $preis = $dsatz["$gp"];
         }
?>


<form name="jalou" action="daten09.php" method="post" onsubmit="if(retab==1)return false;">
			<br>
			<table width="599" border="1" cellspacing="2" cellpadding="0">
				<tr>
					<td width="60%"><input type="hidden" name="sender" value="daten09.php">
Breite in mm <input type="text"size="5" name="EinB" tabindex="1" onblur="anz(this.value,this.name),checkB()" 
value="<?php
      printf("%s", htmlentities($EinB));
         ?>"/><input type="hidden" name="breite" size="5"
  value="<?php
      printf("%s", htmlentities($breite));
         ?>" readonly /><br>
						<input type="hidden" name="sender" value="daten09.php">
H&ouml;he in mm <input type="text" size="5" name="EinH" tabindex="2" onblur="anz(this.value,this.name),checkH()"
    value="<?php
      printf("%s", htmlentities($EinH));
         ?>"/><input type="hidden" name="hoch" size="5" 
  value="<?php
      printf("%s", htmlentities($hoch));
    ?>" readonly /><br>
						<br>
						
Dessin: <select name="dessin"  onchange="ShowImage(this.options[this.selectedIndex].value);" tabindex="3">
							<?php
foreach ($dessins as $dessin) {
    echo '<option value="' . $dessin . '"';
    if ($dessin == $_POST['dessin']) {
        echo ' selected';
    }
    echo '>' . $dessin . '</option>';
}
?>"selected></option> 
  
						</select><br>
						<br />


						<?php
 echo "Die Preistabellenbreite der Jalousie betr&auml;gt : " . $breite . " cm";
 ?><br>
						<?php
 echo "Die Preistabellenh&ouml;he der Jalousie betr&auml;gt : " . $hoch . " cm";
 ?><br>						<?php
 echo "Der Grundpreis der Jalousie betr&auml;gt : " . $preis . " €";
 ?><br>
						<input type="submit" value="Grundpreis berechnen" onmousedown="retab=0;"> <br />
 <div class="klein"> Zwischenmaße sowie Jalousien mit kleineren Abmessungen als in der Preisliste aufgeführt, werden zum nächsthöheren Tabellenpreis berechnet.</div><br />           
						<p>Seitenfuehrung [+ 16,00€]: <input type="radio" name="sf" onchange="spezialvariante1()";
    value="false"<?php
      printf("%s", ($sf=='false' ? " checked" : ""));
    ?>> nein  &nbsp;
    <input type="radio" name="sf"
    value="true"<?php
      printf("%s", ($sf=='true' ? " checked" : ""));
    ?>> ja<br>
							 Bedienung: <input type="radio" name="bedien" onchange="spezialvariante1()";
    value="links"<?php
      printf("%s", ($bedien=='links' ? " checked" : ""));
    ?>> links &nbsp;
    <input type="radio" name="bedien" onchange="spezialvariante1()";
    value="rechts"<?php
      printf("%s", ($bedien=='rechts' ? " checked" : ""));
    ?>> rechts<br>
						</p>
					</td>
					<td><div id="image" border="1"><img src="<?php echo $dessinimage?>.gif" alt=""></div></td>
					<td></td>
				</tr>
			</table>

	<HR noShade>	


Grundpreis<input type="text"size="5" name="preis"  
value="<?php
      printf("%s", htmlentities($preis));
         ?>"/>
Breite<input type="text" name="variante1_1" value="<?php
      printf("%s", htmlentities($EinB. " mm"));
         ?>"/>
H&ouml;he<input type="text" name="variante2_1" value="<?php
      printf("%s", htmlentities($EinH. " mm"));
         ?>"/>
Varinate3<input type="text" size="150"name="variante3_1" value="<?php
      printf("%s", htmlentities($variante3_1));
         ?>"/><br />

<input type="text"   name="menge1" value="1" class="textfeld" style="width: 50px">Stück<br />
<input type="button" name="bestellen_1" value="Bestellung" class="schaltflache" onclick="javascript:kaufen1();"> 	
		</form>
<script type="text/javascript">
var doc = document.jalou;

function anz(a,c){
d = c;
a = parseFloat(a.replace(/,/gi,'.'));
b = Math.ceil(a/100)*10;
if (b<=60){
     b=60;}
h = Math.ceil(a/100)*10;
if (h<=80){
     h=80;}
if (doc.EinB.getAttribute("name", 0) == d){
doc.breite.value = b;}
if (doc.EinH.getAttribute("name", 0) == d){
doc.hoch.value = h;}
}

function checkB () {
var B = document.jalou.EinB.value;
if (B >= 400 && B <= 2200)
{
}
else { alert("Die Breite liegt nicht zwischen 400 und 2200 mm!\n Bitte neu eingeben!");
      document.jalou.EinB.focus();
      document.jalou.EinB.value = "";
   }

}
function checkH () {
var H = document.jalou.EinH.value;
if (H >= 400 && H <= 3000)
{
}
else { alert("Die Höhe liegt nicht zwischen 400 und 3000 mm!\n Bitte neu eingeben!");
      document.jalou.EinH.focus();
      document.jalou.EinH.value = "";      
}

}
  </script>
<SCRIPT type=text/javascript>
  function spezialvariante1()
  {
    var referenz = document.jalou;
    var pendel  = referenz.sf.value;
    var bedienung   = referenz.bedien.value;

    
    referenz.variante3_1.value = "<br>" + pendel + "<br>" + bedienung;
    // Mehrpreis
    // ------------------------------------------------------------
 var preis3 = 0;
     if(referenz.sf == true)
    {
      preis3 + 16.00;
    }
    referenz.preis3_1.value = preis3;//parent.rundung(preis3);
    artikel1.preis = document.jalou.preis.value;
//-------------Gesamtpreis mit Sonderausführung----------
   var Epreis = preis3
   referenz.preis_1.value = Epreis;//parent.rundung(Epreis);
  var Gpreis = artikel1.preis + Epreis
   referenz.Gpreis_1.value = Gpreis;//parent.rundung(Gpreis);
//-------------------------------------------------------
    artikel1.varianteauswahl3[0] = referenz.variante3_1.value;
    artikel1.variantepreis3[0] = referenz.preis3_1.value;
  }
  function variante3einschalten1()
  {
    var referenz = document.xaranshop1;
    artikel1.variantevorh3 = "ja";
    artikel1.varianteauswahl3 = new Array;
    artikel1.varianteauswahl3[0] = referenz.variante3_1.value;
    artikel1.variantepreis3 = new Array;
    artikel1.variantepreis3[0] = referenz.preis3_1.value;
  }
  window.setTimeout("variante3einschalten1()",250);
  window.setTimeout("spezialvariante1()",350);
</SCRIPT> 
     		<TABLE cellSpacing=0 cellPadding=0 width=440 border=0>
<TBODY>
<TD>&nbsp;</TD>
<TD class="normal">&nbsp;Grundpreis für Ihr gewähltes Modell</TD>
<TD>&nbsp;<INPUT size=4 value=0.00 name="Epreis_1" style="text-align:right;"></TD>
<TD class="normal">&nbsp;EUR*</TD></TR>
<TR>
<TD class="normal">&nbsp;+</TD>
<TD class="normal">&nbsp;Mehrpreis für Ihre gewählte Extras</TD>
<TD>&nbsp;<INPUT size=4 value=0.00 name="preis3_1" style="text-align:right;"></TD>
<TD class="normal">&nbsp;EUR*</TD></TR>
<TR>
<TD>&nbsp;=</TD>
<TD class="normal">&nbsp;Gesamtpreis für Ihr gewähltes Modell&nbsp;</TD>
<TD>&nbsp;<INPUT size=4 value=0.00 name="Gpreis_1" style="text-align:right;"></TD>
<TD class="normal">&nbsp;EUR*</TD></TR></TBODY></TABLE>	 
  
  
<script type="text/javascript">
  function kaufen1()
   {
        parent.lege_in_warenkorb(artikel1, document.jalou.menge1.value, document.jalou.variante1_1.value, document.jalou.variante2_1.value, document.jalou.variante3_1.value);
      }
</script> 


    
 
</body> 
</html> 

Für Hilfe wäre ich sehr Dankbar
Viele Grüße
Peter

05.03.2008 21:54

2 Jörg

Hallo Peter,

muss der Grundpreis nicht erst noch errechnet werden aus anderen Werten, die übertragen werden?

05.03.2008 22:16

3 Peter

Hallo Jörg,
nein und ja, durch die Funktion spezialvariante1, die "onchange" gestartet wird wird der Grundpreis neu berechnet. Der Grundpreis(69.00€) ist durch "artikel_preis1" definiert.

Nachtrag:
Wenn der Artikel in den Warenkorb gelegt wird, werden immer die 69.00€ übertragen.

Vielleicht lese ich auch die Radiobutton falsch aus?
variante3_1 wird als undefiniert gekennzeochnet.

05.03.2008 22:39 | geändert: 05.03.2008 22:47

4 Jörg

Wenn ich verschiedene Werte eingebe und auf "Grundpreis berechnen" klicke, erscheint ein anderer Preis - ist das der falsche oder liegt das Problem noch woanders?

05.03.2008 23:28

5 Peter

Der Grundpreis, der errechnet wird, wird in $preis und über :

Grundpreis<input type="text"size="5" name="preis"
value="<?php
printf("%s", htmlentities($preis));
?>"/>
in das Feld "preis" geschrieben.

In der function spezialvariante1 als artikel1.preis eingetragen:

artikel1.preis = document.jalou.preis.value;

Igendwie muß der Fehler hier liegen, artikel1.preis wird nicht aktualiesiert.

05.03.2008 23:40 | geändert: 05.03.2008 23:43

6 Jörg

Folgende Fehler gibt mir die Fehler-Konsole in Firefox aus:

Fehler: referenz has no properties
Quelldatei: http://www.windeko.de/php/daten09.php
Zeile: 210

Fehler: referenz.preis3_1 has no properties
Quelldatei: http://www.windeko.de/php/daten09.php
Zeile: 194

05.03.2008 23:57

7 Peter

Habe
var referenz = document.xaranshop1;
in var referenz = document.jalou;

geänder, leider war das wohl nicht der Fehler.

Es sicht so aus, als ob "preis3_1" ist null oder kein Objekt.

Hier muß der Fehler liegen.

06.03.2008 00:16

8 Jörg

preis3_1 liegt nicht innerhalb des Formulars - verschieb mal das </form> nach hinten..

Ich bin jetzt aber auch schon lang zu müde, werde erst morgen wieder drüber schauen ;)

06.03.2008 00:19

9 Peter

Danke Jörg,
Gute Nacht

06.03.2008 00:21

10 Jörg

Jetzt wird folgender Fehler angezeigt:

Fehler: missing ; before statement
Quelldatei: http://www.windeko.de/php/daten09.php
Zeile: 184, Spalte: 16
Quelltext:
var artikel1.preis = 69.00;

Probier's mal ohne var

artikel1.preis = 69.00;

06.03.2008 08:58