Preis in einem Shop (Computer-Konfigurator) aktualisieren

  • #1
G

groovesurfer

Bekanntes Mitglied
Themenersteller
Dabei seit
28.02.2003
Beiträge
352
Reaktionspunkte
0
Hi Leute,

ich möchte eine Shop System (Computer Konfigurator) erstellen. Es soll wie folgt funktionieren:

- Es gibt einen festgelegten Anfangspreis für einen komplett PC (z.B. 400 Euro).
- Die Computer Komponenten z.B. RAM soll man mit radio-buttons auswählen können
- Es gibt immer einen angewählten anfangs-Wert (checked). z.B.
256MB Ram (+0Euro)(zu Beginn checked)
512MB Ram (+40Euro)
1024MB Ram (+120Euro)
(Mit radio-buttons soll man diese auswählen können. Wenn man z.B. 512MB Ram auswählt soll sich der Preis hier um 40 Euro erhöhen)
- Die Bezeichnung und der Preis soll von einer .csv Datei eingelesen werden.

Ich habe es bisher so realisiert (in Spalte 1 ($data[null]) von amd_ram.csv steht die Bezeichnung, in Spalte 4 ($data[3]) der Preis):

Code:
$bol=file_exists(amd_ram.csv);
   if($bol){
       $datei=fopen(amd_ram.csv,r);
       if($datei){
           $dateigroesse=filesize(amd_ram.csv);
           $data=fgetcsv($datei,$dateigroesse,;);

           echo <tr><td width='20' ></td><td width='20'></td><td><b><input type='radio' name='amd_ram' value=';
           echo $data[0];
           echo-> checked>;
           echo $data[0];
           echo  </b><font size='1'>;
           echo $data[3];
           echo </font></td><td width='20' ></tr>;
           $data=fgetcsv($datei,$dateigroesse,;);

            while($data!=false){
            echo <tr><td width='20'></td><td width='20'></td><td><b><input type='radio' name='amd_ram' value=';
            echo $data[0];
            echo->>;
              echo $data[0];
              echo  </b><font size='1'>(+;
              echo $data[3];
              echo )</font></td><td width='20'></tr>;
              $data=fgetcsv($datei,$dateigroesse,;);
              if($data!=false){
               echo <tr><td width='20'></td><td width='20'></td><td><b><input type='radio' name='amd_ram' value=';
               echo $data[0];
               echo->>;
                 echo $data[0];
                 echo  </b><font size='1'>(+;
                 echo $data[3];
                 echo )</font></td><td width='20' background='bilder/bg6.gif'></tr>;
                 $data=fgetcsv($datei,$dateigroesse,;);
              }
           }
           fclose($datei);
       }
   }
Wenn ich nun per <form action=.......> die Variablen in Datei2 übertrage wird alles ausgewählte richtig angezeigt.
Jedoch soll sich der Anfangspreis ja noch erhöhen und angezeigt werden. Am liebsten wäre mir wenn man auf der ersten Seite (Datei1, aktuelle Seite) den Preis durch einen Button Preis aktualisieren aktualisieren lassen könnte.
Mir fällt nur nicht ein wie ich das relisieren kann.

Grüsse
groovesurfer
 
  • #2
Ich versteh nicht ganz wo dein Problem liegt. So wie du es beschreibst hast du doch schon alles wichtige getan. Du hast in einer Datenbank (auch wenn ich diese CSV Datei nur begrenzt als Datenbank bezeichnen würde) die Preise usw. gespeichert und du hast ein entsprechendes Formular geschrieben was den ganzen Mist auswertet bzw. wodurch die gewünschten Optionen weitergegeben werden. Nachdem das Formular abgeschickt wurde musst du nur noch anfangen das Ergebnis nach einem deffinierten Muster zu verarbeitet. Du musst also z.B. überprüfen welche Boxen checked (ausgewählt) sind und dann einfach dementsprechend den Inhalt der Variable in der der Preis steht neu berechnen. Das ist alles.
 
  • #3
Ja klar. Mir ist bissher aber nciht eingefallen wie.
Habe es ein bisschen anders gemacht. Aber es funktioniert
Datei2:
Code:
$bol=file_exists(amd_cpu.csv);
if($bol){
    $datei=fopen(amd_cpu.csv,r);
    if($datei){
        $dateigroesse=filesize(amd_cpu.csv);
        $data=fgetcsv($datei,$dateigroesse,;);

            while($data!=false){
if($amd_cpu==$data[0]){
    $aufpreis=$data[3];
}
        $data=fgetcsv($datei,$dateigroesse,;);
        }
     }
        fclose($datei);
}
$aktueller_preis=$preis+$aufpreis;

echo $aktueller_preis;
 
  • #4
groovesurfer schrieb:
Ja klar. Mir ist bissher aber nciht eingefallen wie.

Zum Beispiel indem du den Inhalt bewertest! Außerdem kannst du das ganze auch per JavaScript aktualisieren lassen. Aber wenn du es eh bereits geschafft hast umso besser.
 
  • #5
Ja funktioniert gut. Das Ganze hat aber leider noch eien Haken:

Am Schluss des scripts gehe ich via header auf die erste Datei zurück. Der aktuelle Preis wird korrekt angezeigt, jedoch sind die radio-Buttons wieder auf dem ursprungswert.
Was kann ich nun tun, dass der zuvor ausgewählte Wert angewählt ist???

Code:
$bol=file_exists(amd_cpu.csv);
   if($bol){
       $datei=fopen(amd_cpu.csv,r);
       if($datei){
           $dateigroesse=filesize(amd_cpu.csv);
           $data=fgetcsv($datei,$dateigroesse,;);

            while($data!=false){
            if($amd_cpu==$data[0]){
                $aufpreis=$data[3];
                 //hier checked??
            }
              $data=fgetcsv($datei,$dateigroesse,;);
           }
    }
           fclose($datei);
   }
$aktueller_preis=$preis+$aufpreis;
header(Location: basic_amd.php);
 
  • #6
Ich glaube dieses Problem wirst du nur mit Java Script ändern können. Denn du hast ja den Formularbereich statisch festgenagelt.
 
  • #7
Shit. Von Java Script habe ich bis auf ein paar Ausnahmen nun mal gar keine Ahnung.

Habe hier mal einen Link gefunden:

genau so soll es vom Prinzip auch sein. Aber da sich meine Artikel und Preise ständig ändern möchte ich auf jeden Fall csv Dateien einbringen und nicht ständig den Quellcode ändern. Geht das trotzdem bei dem Beispiel auch?

P.S.Wieder einmal Danke für Deine Hilfe.
 
  • #8
Na klar geht das auch mit JS. Ich würde das sogar machen (so wie z.B. in deinem Beispiel), doch solltest du auch eine PHP Alternative anbieten, sollte jemand kein JS aktiviert haben. Ob du die Preise oder was auch immer aus ne Datenbank, einer Datei oder was auch immer beziehst, ist vollkommen egal. JS und PHP haben nichts miteinander zu tun. D.h. wenn JS anfängt zu arbeiten, ist PHP schon lange fertig ;)

Wie du mit PHP den neuen Preis berechnest, ist da ja mittlerweile klar.

Was die Radiobuttons angeht, so würde ich die Buttons ebenfalls durch PHP erstellen lassen. Dann kannst du nämlich auch immer wieder den richtigen Radiobutton selektieren.
Code:
for($i=1;i=AnzahlderButtons;$i++){
    $Preis = fget... //oder so
    if($_post[hallo]==$preis1(   
        echo <input type=radio [b]checked[/b] name=hallo value=Preis1>
   }else{
        echo <input type=radio...
   }
Da du den jeweiligen Value des Radiobuttons ja wohl auch aus der CSV Datei holst, kannst du diese Werte mit dem der Post Variable vergleichen. Stimmen sie überein, dann wird der button gechecked ;D

Das müsstest du nur noch richtig mit PHP ausformulieren. Aber prinzipiell könntest du das so machen
Preis
 
Thema:

Preis in einem Shop (Computer-Konfigurator) aktualisieren

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben