PHP Bestellformular Aktualisierung

  • #1
T

TRE

Bekanntes Mitglied
Themenersteller
Dabei seit
20.01.2004
Beiträge
170
Reaktionspunkte
0
Guten Morgen Gemeinde,

ich habe ein paar Probleme mit einem Bestellformular.

Sachverhalt:
Ein Kunde wählt per Checkboxen Artikel aus. Per POST werden verschiedene Daten (über hidden-Felder) an ein Bestellformular weitergegeben.

Probleme:
um eine vordefinierte Menge (1) im Bestellformular einzutragen, übergebe ich die Menge 1 als hidden-feld an das Bestellformular. Leider werden alle Mengenfelder - auch die nicht ausgewählten - an das Bestellformular weiter gegeben. Wenn ich also insgesamt 10 verschiedene Artikel auf der Auswahlseite habe, wird auch die Menge 10 weitergegeben, auch wenn nur zwei Artikel ausgewählt sind. Angezeigt werden aber nur die zwei ausgewählten Artikel.
Außerdem möchte ich dem Kunden die Möglichkeit geben die Menge im Bestellformular anzupassen und das Formular dann zu aktualisieren. Leider weiß ich gerade aber überhaupt nicht, wie ich das anstellen soll.

Quellcode:

Artikelauswahl:
Code:
<tr>
  	<td><div align=center><img src=pics/produkte/KMP.jpg alt=KMP-Originaltoner width=50 height=14 /></div></td>
    <td>HP LaserJet<br /> 
      4000 series / 4050 series </td>
    <td class=dot><div align=center><img src=pics/navigation/dot_black.gif alt=Farbe: Schwarz width=8 height=8 /></div></td>
    <td>ca. 10.000 Seiten </td>
    <td>0869,HY00</td>
    <td>C4127X</td>
    <td class=preis>45,95 €</td>
	<td align=center>
		<input name=artikel[] type=checkbox value=KMP Rebuild-Toner für HP-LaserJet 4000 Serie />
			<input name=artikelnr[] type=hidden value=0869,HY00 />
			<input name=artikelpreis[] type=hidden value=45.95 />
			<input name=artikelmenge[] type=hidden value=1 />
		</td>
    </tr>

Bestellformular:

Code:
<form action=bestellung.php method=post>
<table border=0 cellspacing=0 cellpadding=0>
  <tr>
    <td width=106>Name:</td>
    <td width=210><input name=Name type=text class=text id=Name size=35,5 /></td>
    <td width=20> </td>
    <td width=60>Telefon:</td>
    <td width=144><input class=text type=text name=Telefon id=Telefon /></td>
  </tr>
  <tr>
    <td>Straße / Nr. </td>
    <td><input name=Straße type=text class=text id=Straße size=25 />
     <input size=5 class=text type=text name=Nr id=Nr /></td>
    <td> </td>
    <td>Fax:</td>
    <td><input class=text type=text name=Fax id=Fax /></td>
  </tr>
  <tr>
    <td>PLZ / Ort </td>
    <td><input size=8 class=text type=text name=PLZ id=PLZ />
     <input name=Ort type=text class=text id=Ort size=22 /></td>
    <td> </td>
    <td>E-Mail:</td>
    <td><input class=text type=text name=E-Mail id=E-Mail /></td>
  </tr>
  <tr>
    <td>Kundennummer:</td>
    <td><input name=Kundennummer type=text class=text id=Kundennummer size=35,5 /></td>
    <td> </td>
    <td> </td>
    <td> </td>
  </tr>
</table>


<hr />
<?php
$anzahl = count ($artikel);

for ($i=0; $i<$anzahl; $i++) {
	$preis[$i] = $artikelpreis[$i] * $artikelmenge[$i];

		echo $i   ;
        echo Artikel: <input class='text' size='50' name='Artikel' type='text' value='$artikel[$i]'>  ;
        echo Nr: <input class='text' size='8' name='' type='text' value='$artikelnr[$i]'>  ;
        echo Preis/Artikel: <input class='text' size='5' name='Einzelpreis' type='text' value='$artikelpreis[$i]?'>  ;
        echo Menge: <input class='text' size='2' name='Menge' type='text' value='$artikelmenge[$i]'>  ;
        echo Preis: <input class='text' size='5' name='Einzelpreis' type='text' value='$preis[$i]?'>  ;
        echo <hr />;
    }
?>
<p align=right>
Anzahl Artikel: <?php $aa = array_sum($artikelmenge); echo $aa; ?><br>
Preis netto: <?php $bb = array_sum($preis); echo $bb; ?>?<br>
Preis inkl. MwSt: <?php $cc = array_sum($preis)/100*119; ?>
					<?php if($bb<100){
                     echo  $cc+7.9; }else{
                     echo  $cc;} ?>?</p> 
</div>
<div id=noprint>
<br /><br />
<table width=570 border=0 cellpadding=0 cellspacing=0>
  <tr>
    <td width=190></td>
	<td width=190><div align=center><input type=reset name=reset value=Bestellung löschen />
	</div></td>
    <td width=190><div align=right><input type=submit name=aktualisieren value=Bestellung aktualisieren /></div></td>
  </tr>
</table>

</div>
</form>

Kann mir jemand nen Tipp geben? Oder ist mein Vorgehen generell falsch oder zu kompliziert?

Vielen Dank für eure Hilfe.

TRE
 
  • #2
Moin,

hab dir mal ein Beispiel gebastelt wie du es machen könntest ;)
http://pcdconny.wintotal-forum.de/beispiele/bestellung.phps

Das Beispiel ist allerdings noch OHNE jegliche Überprüfung der Benutzereingaben ;)

Naja, auf das Aussehen hab ich natürlich auch nicht so geachtet :2funny:

Aja, nochwas ;)
mit dem if < 100 dann + 7.9 hab ich jetzt nicht wirklich was mit anzufangen gewusst, also hab ich das mal wech gelassen ;)

Code:
<?php
...
...
if($_POST[reset]) $_POST[artikel] = false;
...
...
?>
Diese Zeile ist dafür da das beim Löschen der Bestellung die Benutzerdaten erhalten bleiben und nur die Artikel gelöscht werden ;)

Moin moin

BTW: Habt ihr sowenige Artikel das du die __Hardgecodet__ in die Webseite schreibst, normal macht man das mit ner DB ;)
 
  • #3
Super Conny,

danke dafür :respect:

Aja, nochwas
mit dem if < 100 dann + 7.9 hab ich jetzt nicht wirklich was mit anzufangen gewusst, also hab ich das mal wech gelassen
Das war ne Lösung, wenn ein Kunde für über 100 Euro bestellt, dann zahlt er keinen Versand.

BTW: Habt ihr sowenige Artikel das du die __Hardgecodet__ in die Webseite schreibst, normal macht man das mit ner DB
Zum einen wir das aktuell ein Testlauf - mal sehen wie die Resonanz ist, zum anderen werden nur ausgewählte Produkte auf diese Weise zu bestellen sein. Wenn das ganze sich gut angeht, dann werde ich einen Shop darüf aufbauen.

THX nochmal und bis später :1

Greetz TRE
 
  • #4
TRE schrieb:
Zum einen wir das aktuell ein Testlauf - mal sehen wie die Resonanz ist, ......

auf jeden Fall bietet sich für solch ein Bestellformular AJAX an, da wird das Formular aktualisiert ohne das die ganze Seite neu geladen werden muss ;)


Ansonsten, no Prob :1
 
  • #5
Ajax entzieht sich noch vollkommen meinem Erfahrungsbereich. Muss ich mir wohl mal ansehen.

Dein Beispiel hat schon ne Menge brauchbare Teile für meine Idee - ich bin gerade dabei das zu verwursten.
Wenn ich das Ganze zum Laufen gekriegt habe, werd ich mal nen Ergebnis posten.
Und wenn ich noch Fragen habe, poste ich die ;)
 
Thema:

PHP Bestellformular Aktualisierung

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben