zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Angebots-Rechner

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 01.11.2007, 00:40
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard Angebots-Rechner

Hallo an alle PHP-Profis,

bevor ich hier gepostet habe, habe ich mich schon halb tot gegoogelt! Bin aber nicht fündig geworden.

Ich möchte in meine Firmen-Homepage einen Angebots-Rechner auf Basis von PHP und Formularen einbauen, allerdings OHNE MySQL.
Zur Not würde ich auch ein Javascript akzeptieren, wenn dieses Script nicht so ewig lang ist und gut zu ergänzen ist. PHP wäre mir aber lieber.

Soll so aussehen:

Neben jedem beschriebenen Artikel (Produkt) sitzt rechts ein Auswahl-Kästchen, das man anhaken kann, wenn man genau dieses Produkt haben will. Manche Produktbereiche haben nur eine Auswahl-Möglichkeit, andere haben mehrere.
Wenn das mit Dropdown-Menues für die jeweiligen Rubriken besser zu realisieren ist, dann soll mir das auch recht sein. Wichtig wäre dann aber auch, dass manche Rubrikbereiche mehrere Auswahlmöglichkeiten aufweisen.

Im Hintergrund, bzw. im PHP-Script ist für jedes Produkt ein Preis festgelegt, der aber im Angebotsrechner für den Kunden zunächst nicht ersichtlich ist.

Für jedes angeklickte Produkt "merkt" sich PHP den jeweiligen Preis und addiert diesen immer zum nächsten gewählten Produkt dazu. Und das immer so weiter für alle gewählten Produkte.
Am Ende des Formulares drückt der User dann einen Button "ausrechnen", und nebenan (oder meinetwegen auch auf einer 2. Seite) steht dann der Gesamt-Betrag aller gewählten Produkte (möglicherweise inkl. aller gewählten Produkte).

Optimal wäre es, wenn dann auch noch eine Möglichkeit für den User gegeben wäre, dieses Angebot (gewählte Produkte plus Endpreis) per Formmailer an mich zu schicken. Aber wenn das so nicht möglich ist, ist das auch kein Problem.


Bitte sage jetzt niemand, dass das mit dem Angebotsrechner nicht geht! Denn ich habe es schon auf mehreren Seiten gesehen! Ich weiß also, DASS es geht, aber nicht WIE.

Ob jetzt nun das PHP-Script in einer zweiten Seite sitzt oder in der gleichen, in der sich auch das Formularfeld befindet, ist mir wurscht.

Bitte bitte helft mir.

Danke schon mal im Voraus und viele Grüße.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 01.11.2007, 08:50
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 26.11.2005
Beiträge: 139
schubidu befindet sich auf einem aufstrebenden Ast
Standard

Hallo Majikat,

du könntest statt einer Datenbank XML-Dateien nehmen, in denen die unterschiedlichen Preise und Konfigurationen gespeichert sind.

Gruß Schubidu
__________________
Puls hoch. Preis runter. Auktionen bei TeleBid. Anmelden lohnt sich und kostet nichts.
Hol\' Dir unbedingt noch den 25 Euro Gutschein auf www.telebid.de!
Jetzt anmelden und im Feld Gutscheincode eingeben: Schubidu
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 01.11.2007, 11:09
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard

Hallo Schubidu,

danke für Deine Antwort.

Das ist richtig und das weiß ich auch. Es ist aber nicht mein primäres Problem.

Ich habe ja in meinem Post ausführlich beschrieben, was ich machen will. Das Problem ist also, wie man so etwas mit php aufbaut.

Wenn es nur darum ginge, als Speicherort zwischen einer Datenbank oder einer XML-Datei zu wählen, hätte ich gar nicht erst gepostet.


Gruß: Majikat.
Mit Zitat antworten
  #4 (permalink)  
Alt 01.11.2007, 11:42
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Für mich liest sich Dein Beitrag so, dass Du das Script von jmd. fertig geschrieben bekommen möchtest, was ich aber nicht tun werde.

Wenn Du mit PHP arbeitest kannst Du die Produkte und Preise in einem Mehrdimensionalen Array im PHP-Script hinterlegen.

Wenn das Formular mehrseitig ist, dann kannst Du die (gewählten) Produkte, die nicht auf der aktuellen Seite angezeigt werden, in hidden-Fields übergeben. Bei einem einseitigen Formular ist es natürlich noch wesentlich einfacher.

Den Gesamt-Preis kannst Du ja einfach bestimmen, wenn Du durch das Array iterierst und die Einzelpreise aufaddierst.

Eine eMail schickst Du mit der Funktion 'mail' raus.
Mit Zitat antworten
  #5 (permalink)  
Alt 01.11.2007, 11:59
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard

Hallo Mantiz,

mit keiner Silbe habe ich verlangt, dass mir jemand ein komplettes Script schreibt! Schon gar nicht von Dir.

Wozu gibt es eigentlich Foren, wenn man - anstatt Hilfe zu erwarten - solche Unterstellungen serviert bekommt?

Mir würde es vollkommen reichen, wenn mir jemand das für mein Problem notwendige Basis-Wissen vermittelt. Aufbauen usw., das kann ich dann schon selbst.

Hier werden doch ständig teilweise auch ellenlange Scripts für andere gepostet, die Hilfe suchen. Was ist daran so ungewöhnlich?!

Mich interessiert einzig und alleine, wie ich mein angesprochenes Problem löse. Und Gott-Lob gibt es auch noch hilfsbereite Menschen, ich werde also schon eine Lösung finden. Deine subjektive Meinung über meine Postings hilft mir absolut nicht weiter und sie interessiert mich auch nicht.
Mit Zitat antworten
  #6 (permalink)  
Alt 01.11.2007, 12:05
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Zitat:
Zitat von mantiz Beitrag anzeigen
Wenn Du mit PHP arbeitest kannst Du die Produkte und Preise in einem Mehrdimensionalen Array im PHP-Script hinterlegen.

Wenn das Formular mehrseitig ist, dann kannst Du die (gewählten) Produkte, die nicht auf der aktuellen Seite angezeigt werden, in hidden-Fields übergeben. Bei einem einseitigen Formular ist es natürlich noch wesentlich einfacher.

Den Gesamt-Preis kannst Du ja einfach bestimmen, wenn Du durch das Array iterierst und die Einzelpreise aufaddierst.

Eine eMail schickst Du mit der Funktion 'mail' raus.
Hi Majikat!
Na krieg Dich wieder ein!

Keiner will was böses. Mantiz hat Dir doch schon einen Hinweis gegeben!
Waerum eigentlich ohne mysql? Oder Textdateien, xml?
Mit Zitat antworten
  #7 (permalink)  
Alt 01.11.2007, 12:22
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Wenn mein subjektiver Eindruck falsch war, dann entschuldige ich mich hiermit.
Im Grunde bin ich schon hilfsbereit, wenn ich helfen kann.

Leider kommt es häufig vor, dass Leute fertige Lösungen präsentiert bekommen wollen, weshalb ich da wohl etwas sensibel bin, was aber nicht böse gemeint ist.

Zusätzlich zu meinem (rein subjektiven) Eindruck habe ich aber auch geschrieben, wie man das lösen kann, ein paar (X)HTML- und PHP-Kenntnisse vorausgesetzt.

z.B. kannst Du das Array folgendermaßen aufbauen:
PHP-Code:
$products = array(
   
'page1' => array(
      
'p1' => array(
         
'name' => 'Produkt 1',
         
'desc' => '...'
         
'price' => 9.99,
         
'options' => array(
            
'o1' => array(
               
'name' => '...',
               
'desc' => '...'
               
'price' => 1.99
            
),
            
'o2' => array(
               
'name' => '...',
               
'desc' => '...'
               
'price' => 1.99
            
)
         )
      ),
      
'p2' => array(
      )
   ),
   
'page2' => array(
      
// ...
   
)
); 
Naja, als ein Beispiel.

Für das Formular liest Du jetzt die Produkte aus, die in der aktuellen 'page' stehen, zu jedem Produkt die evtl. vorhandenen Optionen und alles weitere speicherst Du in hidden-Fields. Ob etwas angehakt ist kannst Du aus $_POST auslesen.
Wenn das Array so aufgebaut ist, dann kannst Du auch einen Grundpreis für ein Produkt angeben und die bei den Optionen jeweils den Aufpreis. Wenn das Unter-Produkte sind, dann kannst du den Produktpreis auf '0' lassen und bei den Optionen/Unterprodukten den vollen Preis angeben.

Evtl. kann man auch den Schlüssel des Arrays weglassen und dafür jedem Produkt/Option eine ID geben, das ist glaube ich eher Geschmacksache.
Mit Zitat antworten
  #8 (permalink)  
Alt 01.11.2007, 12:25
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard

hi Paracelsus,

aber ich rege mich ja gar nicht auf. Du solltest mich mal sehen, wenn ich mich aufrege... .

Nein, okay, Spaß beiseite!

Wie gesagt, mir ist es egal, wie man das Problem löst. Ich gebe zu, dass ich in Sachen MySQL absoluter Newbee bin.

Wenn es aber notwendig und im Endeffekt einfacher damit ist, habe ich mich rasch in die Materie eingearbeitet. Obwohl mir das mit der XML (Text) Datei sympathischer klingt.

Außerdem ändert sich meine ohnehin übersichtliche Preisliste so selten, als dass ich zwingend auf eine Datenbank angewiesen wäre. Die paar notwendigen Änderungen kann ich leicht von Hand ausführen.

In Sachen php bin ich zumindest so fit, dass ich mit den Begriffen array, if, else, echo, include usw. durchaus etwas anzufangen weiß und deren Sinn und Bedeutung auch verstehe. Auch weiß ich, dass php immer serverseitig ausgeführt wird.

Mein Problem besteht einzig und alleine darin, wie ich in eine einseitige Formular-Seite (mit Checkboxen ODER Dropdown-Menues) die jeweils notwendigen php-Anweisungen derart unterbringe, dass bei jedem Klick auf ein (oder mehrere) Produkt(e) der jeweilige Preis "gemerkt" wird.
Und WIE ich es anstelle, dass der GESAMTPREIS am Ende neben dem Button "Ausrechnen" (nach einem Klick auf diesen) angezeigt wird.

WAS also muss ich dem jeweiligen Inputfeld "sagen", damit das so funktioniert?

Mich interessiert also lediglich die logische Erklärung auf dem Weg dorthin und NIEMAND muss die komplette Seite für mich basteln.

Außerdem habe ich die Formularseite längst fertig gestellt. Es muss nur noch der PHP-Teil integriert werden.

Ich hoffe nach wie vor auf die unvoreingenommene Hilfe vieler php-Profis hier im Forum. Und ich kann mir nicht vorstellen, dass jemand durch seine Hilfe irgend einen Nachteil hat.

Auch ich habe schon einigen hier im Forum (und in anderen) helfen können, vor allem in Sachen CSS, tabellenfreies Layout usw.. Da habe ich auch nicht groß drüber nachgedacht.

Jeder ist doch froh, wenn er in bestimmten Situationen von Gleichgesinnten Hilfe bekommt. Und nur deshalb machen Foren für mich Sinn.
Mit Zitat antworten
  #9 (permalink)  
Alt 01.11.2007, 12:35
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard

Hallo Mantiz,

nein, ich bin Dir ja nicht böse oder so. Dazu bedarf es schon etwas mehr .

Herzlichen Dank für Dein Script-Schnipsel !

Klingt nachvollziehbar und sogar ICH kann es lesen .

Jetzt weiß ich aber leider noch nicht, wie ich das in ein Formularfeld integrieren kann, bzw. wie ich den "Ausrechnen"-Button beschreiben muss, damit er das tut, was er soll, nämlich eine Summe aus allen gewählten Produkten (Preisen) zu bilden.

Welcher Formular-Aufbau wäre für Dein Script am besten ? Checkboxen oder Dropdown-Menues ?

Nochmals herzlichen Dank für Deine Mühe.

Gruß Majikat
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 01.11.2007, 13:04
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Gut, dann hätten wir das ja geklärt.

Im Grunde braucht es nicht viel, Checkbox oder Select ist völlig egal.

Du gibst jedem input (oder select) als Namen den Array-Schlüssel, oder die ID, falls Du das darüber machen möchtest. Zusätzlich kannst Du ein hidden-Field nehmen, wo die zunächst aufzurufene Seite gespeichert wird, ich nenne es mal 'page'.

Und ich baue das Array nochmal um auf IDs, ist evtl. doch besser.
PHP-Code:
$products = array(
   array(
      
'ID' => '1',
      
'Name' => 'Seite 01',
      
'Products' => array(
         array(
            
'ID' => 'p1',
            
'Name' => 'Produkt 1'
            
'Options' => array(
               
'ID' => 'o1',
               
'Name' => '...'
            
)
         )
      )
   ),
   array(
      
'ID' => '2',
      
'Name' => 'Seite 02',
      
'Products' => array(
         array(
            
'ID' => 'p2',
            
'Name' => 'Produkt 2'
            
'Options' => array(
               
'ID' => 'o2',
               
'Name' => '...'
            
)
         )
      )
   ),
); 
Jetzt ist das Array so aufgebaut, dass man einfach durchlaufen kann und nur vergleichen muss, z.b.
PHP-Code:
$page = (int)$_POST['page'];
if (
$page 0) {
   
$page 0;
}
for (
$p 0$p count($procuts); $p++) {  // Seiten durchlaufen
   
if ($products[$p]['ID'] == $page) {  // diese Seite anzeigen
      
for ($pr 0$p count($products[$p]['Products']); $pr++) {
         echo 
'<input type="checkbox" name="' $products[$p]['Products'][$pr]['ID'] . '" ...> ...';
         
// usw. (z.b. noch eine Schleife für die Optionen einbauen
      
}
      echo 
'<input type="hidden" name="page" value="' . ($page 1) . '" />';
   }
   else {  
// Hier hidden-Fields bauen
      // Hier ähnlich wie oben mit Schleifen durchlaufen, aber immer hidden-Fields bauen
   
}
}

if (
$page >= count($products)) {  // Wenn Seiten-Nr. größer ist als Array, dann Ergebnis anzeigen
   // Hier wieder ähnlich wie oben das Array durchlaufen, Preise addieren und Ergebnis anzeigen.

So ungefähr stelle ich mir das vor. Ist jetzt nicht besonders sauber, grundsätzlich sollte klar sein, was gemeint ist. Du gehst von Seite zu Seite, in dem Du das Formular abschickst und jeweils den Wert von 'page' erhöhst. Wenn Du durch alle Seite durch bist, dann berechnest und zeigst Du das Ergebnis an.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
base auf lokalem Rechner xm22 (X)HTML 1 22.07.2007 17:09
Linux Distribution fuer langsame Rechner dementius Offtopic 8 23.10.2006 13:37
IE 5x UNd 6.0 auf einem Rechner? Kirsten CSS 2 29.05.2006 10:31
Mehrere Versionen des IE auf einem Rechner installieren Boris Ressourcen 3 01.08.2004 02:26


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:04 Uhr.