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
  #11 (permalink)  
Alt 01.11.2007, 14:25
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 17.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard

Hallo Mantiz,

na super! Herzlichen Dank für Deine Bemühungen, Deine Hilfsbereitschaft und meine Hochachtung für Dein Fachwissen.

Im Prinzip verstehe ich das alles und Du hast es auch recht verständnlich erklärt.

Nur habe ich mir das so vorgestellt, dass das Ergebnis nicht durch "von Seite zu Seite hangeln" erreicht wird, sondern irgendwie - ich weiß nicht, wie ich es ausdrücken soll... - einfacher. Checkbox(en) anklicken, Button "Ausrechnen" anklicken - fertig!

Sieh Dir bitte mal eine Beispiel-Seite an. SO IN ETWA hätte ich es gerne. Nur würde ich für meinen Bedarf einen völlig anderen Grundgerüst-Aufbau herstellen, was ich auch schon getan habe. Aber die Art und Weise, vor allem die Funktion, ist mir sehr sympathisch und auch vom denken her nachvollziehbar.

hier der Link: Angebotsrechner - Eingabe

Ist mir echt egal, ob ich dafür Radio-Buttons, Checkboxen oder Dropdown-Menues hernehmen muss. Hauptsache, es funktioniert . Vertsehst Du, was ich meine ?

Aber nochmal: Ich weiß es zu schätzen, dass Du Dir - noch dazu an einem Feiertag - so viel Mühe machst, um mir zu helfen. Und ich kann Deinen Vorschlag auch gut nachvollziehen und werde versuchen, daran zu arbeiten.
Vielleicht hast Du aber auch noch eine andere Lösung, nachdem Du Dir das Beispiel angesehen hast?.

Viele Grüße: Majikat
Mit Zitat antworten
Sponsored Links
  #12 (permalink)  
Alt 01.11.2007, 14:56
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ich bin einen etwas anderen Weg gegangen.

Die Sachen (in diesem Fall die Ausstattung eines Ural-Motorrads, ein Freund von
mir ist da Vertragshändler) haben einen Preis, können angekreuzt werden und es
wird sofort der Endbetrag ausgegeben.

Damit der Interessent auch etwas in der Hand hat, kann er das, zusammen mit
seiner Anschrift, als PDF ausdrucken. Die PDFs hebe ich natürlich auf ...

Ich kann halt kein PHP ... aber die Funktionalität ist ja ähnlich. Hilfreich ist immer,
die Adresse aufzuheben ... fairerweise ein Hinweis, Datenschutz etc. ?
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #13 (permalink)  
Alt 01.11.2007, 14:57
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

Feiertag, was ist das?

Im Grunde ist es so ja wesentlich einfacher. Im Grunde hast Du ein simples Formular, welches abgeschickt und ausgewertet wird. Die Berechnung findet bei Deinem geposteten Link ja auch serverseitig statt.
Formular (angebot.php) wird ausgewertet (angebot1.php), wobei man das aber auch im selben Script vereinen kann.

PHP-Code:
$products = array(
   array(
      
'ID' => 'p1',
      
// usw. wie vorher
   
),
   array(
      
'ID' => 'p2'
      
// usw. wie vorher
   
)
);

if (isset(
$_POST['calculate']) && $_POST['calculate'] == '1') { // Form. wurde abgeschickt
   
$price 0;
   foreach (
$products as $i => $p) {
      echo 
$p['Name'] . ((isset($_POST[$p['ID']]) && $_POST[$p['ID']] == '1') ? 'X' ' ');
      
$price += $p['price'];
      foreach (
$p['Options'] as $j => $o) {
         echo 
$o['Name'] . ((isset($_POST[$o['ID']]) && $_POST[$o['ID']] == '1') ? 'X' ' ');
         
$price += $o['Price'];
      }
   }
   echo 
'Gesamt: ' number_format($price2',''.') . ' €';
}
else { 
// Formular anzeigen
   
foreach ($products as $i => $p) {
      echo 
'<input type="checkbox" name="' $p['ID'] . '" value="1" />';
      foreach (
$p['Options'] as $j => $o) {
         echo 
'<input type="checkbox" name="' $o['ID'] . '" value="1" />';
      }
   }
   echo 
'<input type="hidden" name="calculate" value="1" />';

Ich hab's jetzt nur auf das wesentliche beschränkt, ich hoffe es ist alles klar geworden.

Wenn mehrere Auswahl-Möglichkeiten für eine Selectbox oder Radiobuttons vorhanden sein sollen, dann kann man auch noch für jedes Produkt bzw. Option ein weiteres Array 'values' einfügen, wo man dann z.b. 'Ja' und 'Nein' als Elemente hat. Dann muss man $_POST eben auf dieses Value hin überprüfen und nicht nur darauf, ob es gesetzt ist. Dann kann man bei 'Ja' bzw. 'Nein' noch einen eigenen Preis hinterlegen.

// Nachtrag:
Ich denke Scheppertreiber hat es mit Javascript gemacht (aber keine Ahnung). JS sollte meiner Meinung nach aber nur zusätzlich und nicht erforderlich sein, weshalb ich eine PHP/Perl/ASP/etc.-Variante bevorzugen würde. Außerdem stehen die Einzelpreise und Kalkulationsmethode auf diese Weise nicht für jeden ersichtlich im Quelltext. Die Sache mit der PDF-Generierung könnte man ja noch dazubauen und halte ich auch u.U. für sinnvoll.

Geändert von mantiz (01.11.2007 um 15:03 Uhr) Grund: Nachtrag zu Scheppertreiber ergänzt
Mit Zitat antworten
  #14 (permalink)  
Alt 01.11.2007, 15:16
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 17.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard

Tja, also - Feiertag, das ist, wenn man... Ach darum geht es doch gar nicht!

Ja, klingt wirklich einfach - für DICH vielleicht.... Aber ich blicke da noch nicht so ganz durch. Ich möchte jetzt noch wissen:

Was schreibe ich in die jeweilige Checkbox (Radiobutton, Dropdown-Menue) rein, damit das funktioniert ? Also WAS von DEINEM PHP-Script?

Und WAS GENAU schreibe ich in den Button "ausrechnen", damit der alles zusammen addiert ? Wenn eine 2. Seite gebraucht wird. WAS GENAU muss ich da rein schreiben und wie muss ich das verknüpfen, damit das ganze funktioniert?

Ich will ja wirklich nicht nerven. Aber bitte versetze Dich mal in mich als php-Anfänger (gegen Dich jedenfalls).

Wie gesagt verstehe ich Deine Tipps und ich kann sie auch nachvollziehen. Aber ich weiß das Ganze noch nicht richtig anzuwenden.

Nochmals als Basis: Ich habe die Formularfeld-Seite fertig. Jetzt geht es nur noch... "nur noch" ist gut ... um den Einbau der richtigen Befehle in die jeweiligen input-Felder und das Verknüpfen des notwendigen php-Scitps, damit alles funktioniert.

Wie gesagt, ich bin leider kein php-Profi. Bei mir muss man leider bei Null anfangen.
Mit Zitat antworten
  #15 (permalink)  
Alt 01.11.2007, 15:18
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Mit JS ein PDF generieren ? Wie soll das gehen ?
Mit PHP dürfte das auch nicht so einfach sein.
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #16 (permalink)  
Alt 01.11.2007, 16:10
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

OK, jetzt hab' ich's doch fertig geschrieben.

PHP-Code:
<?php

$products 
= array(
    array(
        
'Name'  => 'Produkt 1'
        
'Desc'  => 'desc'
        
'Price' => 10,
        
'Options' => array(
            array(
                
'Name'  => 'Option 1.1'
                
'Desc'  => 'desc'
                
'Price' => 2,
                
'Values' => array(
                    
'Val1' => 1
                    
'Val2' => 0
                )
            ), 
            array(
                
'Name'  => 'Option 1.2'
                
'Desc'  => 'desc'
                
'Price' => 2,
            )
        )
    ), 
    array(
        
'Name'  => 'Produkt 2'
        
'Desc'  => 'desc'
        
'Price' => 10,
        
'Options' => array(
            array(
                
'Name'  => 'Option 2.1'
                
'Desc'  => 'desc'
                
'Price' => 2,
                
'Values' => array(
                    
'Val1' => 1
                    
'Val2' => 2
                )
            )
        )
    ),
    array(
        
'Name'  => 'Produkt 3'
        
'Desc'  => 'desc'
        
'Price' => 10,
        
'Options' => array(
            array(
                
'Name'  => 'Option 3.1'
                
'Desc'  => 'desc'
                
'Price' => 2,
            )
        )
    )
);

if (isset(
$_POST['calculate']) && $_POST['calculate'] == 1) { // Preis berechnen und Ergebnis anzeigen
    
$total_price 0;
    foreach (
$products as $i => $p) {
        if (isset(
$_POST['p_' $i]) && $_POST['p_' $i] == 1) {
            echo 
$p['Name'] . '<br />';
            
$total_price += $p['Price'];
            foreach (
$p['Options'] as $j => $o) {
                if (isset(
$_POST['p_' $i '_o_' $j]) && $_POST['p_' $i '_o_' $j] == 1) {
                    if (isset(
$o['Values']) && count($o['Values']) > 0) {
                        echo 
'&nbsp;&nbsp;&nbsp;' $o['Name'] . '<br />';
                        
$total_price += $o['Price'];
                        if (isset(
$_POST['p_' $i '_o_' $j '_v']) && in_array($_POST['p_' $i '_o_' $j '_v'], array_keys($o['Values']))) {
                            echo 
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' $_POST['p_' $i '_o_' $j '_v'] . '<br />';
                            
$total_price += $o['Values'][$_POST['p_' $i '_o_' $j '_v']];
                        }
                    }
                    else {
                        echo 
'&nbsp;&nbsp;&nbsp;' $o['Name'] . '<br />';
                        
$total_price += $o['Price'];
                    }
                }
            }
        }
    }
    echo 
'<br />';
    echo 
'Gesamt: ' number_format($total_price2',''.') . ' &euro;';
}
else {  
// Formular ausgeben
    
echo '<form method="post" action="' $_SERVER['PHP_SELF'] . '">';
    foreach (
$products as $i => $p) {
        echo 
'<input type="checkbox" name="p_' $i '" value="1" /> ' $p['Name'] . '<br />';
        foreach (
$p['Options'] as $j => $o) {
            if (isset(
$o['Values']) && count($o['Values']) > 0) {
                echo 
'&nbsp;&nbsp;&nbsp;<input type="checkbox" name="p_' $i '_o_' $j '" value="1" /> ' $o['Name'] . '<br />';
                foreach (
$o['Values'] as $value => $price) {
                    echo 
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="p_' $i '_o_' $j '_v" value="' $value '" /> ' $value '<br />';
                }
            }
            else {
                echo 
'&nbsp;&nbsp;&nbsp;<input type="checkbox" name="p_' $i '_o_' $j '" value="1" /> ' $o['Name'] . '<br />';
            }
        }
    }
    echo 
'<br />';
    echo 
'<input type="hidden" name="calculate" value="1" />';
    echo 
'<input type="submit" value="Berechnen" />';
    echo 
'</form>';
}

?>
Das ist nur ein Beispiel, wie man das machen könnte, da gibt es zahlreiche andere Möglichkeiten, aber für eine schnelle Lösung würde ich das wahrscheinlich so machen, wobei der Code jetzt nicht sonderlich schön ist, ich weiß.

@Scheppertreiber:
Natürlich meinte ich nicht, dass das PDF mit JS generiert wird.
Mit PHP ist es aber relativ simple, wenn man die nötige Klasse dafür hat.
Hier zu finden: FPDF
Bisher hat diese Klasse für mich immer ausgereicht.
Mit Zitat antworten
  #17 (permalink)  
Alt 01.11.2007, 16:14
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ich hab den selbstgebaut. PDF ist nicht so kompliziert ...

Das fpdf habe ich mir gerade mal angesehen, über 1600 Zeile
durch einen Interpreter jagen ? Was gibt das für Laufzeiten ?
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator

Geändert von Scheppertreiber (01.11.2007 um 16:19 Uhr)
Mit Zitat antworten
  #18 (permalink)  
Alt 01.11.2007, 16:23
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

So schlimm ist das nicht.
Mit Zitat antworten
  #19 (permalink)  
Alt 01.11.2007, 17:11
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 17.01.2007
Beiträge: 30
Majikat befindet sich auf einem aufstrebenden Ast
Standard

Hallo Mantiz,

ja, damit kann ich schon was anfangen. DANKE ! Sieht sogar für mich nachvollziehbar aus.

Ich werde mal versuchen, das auf mein vorgefertigtes Layout-Design meines Angebotes umsetzen zu können.
Ich brauche z.B. keine Checkbox neben der Überschrift für das jeweilige Produkt. Meine Liste müsste in etwa so aussehen:

Kartoffeln
Festkochend (Checkbox)
Mehlig (Checkbox)

Gemüse
Blumenkohl (Checkbox)
Rosenkohl (Checkbox)
Broccoli (Checkbox)

Obst
Bananen (Checkbox)
Äpfel (Checkbox)
Birnen (Checkbox)

usw., usw.. Und unten kommt dann der Gesamtpreis raus.


Gruß: Majikat

Darf ich mich wieder bei Dir melden, wenn es nicht funktioniert ?
Mit Zitat antworten
Sponsored Links
  #20 (permalink)  
Alt 01.11.2007, 17:28
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

Kannst Dich gerne melden, wenn ich Zeit und Lust habe und Dir helfen kann, dann helfe ich auch.

Bei dieser Struktur würde ich das Array aber nochmals anders aufbauen, weil einige Dinge, die ich versucht habe zu berücksichtigen anscheinend gar nicht gebraucht werden.

Hier würde es ausreichen in der ersten Dimension die Überschriften ggfs. mit Beschreibungstext zu speichern und darunter dann in der 2. Dimension die zugehörigen Produkte.
Wenn es wirklich so aufgebaut ist, dann wäre es evtl. auch sinnvoll nicht einfach Checkboxen zu nehmen, sondern Textfelder, wo man eine Anzahl von 'Einheiten' eintragen kann. Dann gibst Du bei den Produkten den Preis pro Einheit an (im Array) und bei der Gesamtpreis-Berechnung multiplizierst Du den Preis mit der Anzahl bevor Du ihn auf den Gesamtpreis addierst. Zusätzlich kannst Du noch die Einheit (Kilogramm, Stückzahl, whatever) im Array festhalten und dem User anzeigen, damit er weiß, was er dort eintragen muss.
Bei Kartoffeln könnte ich mir einen Preis pro Kilo gut vorstellen, bei Äpfeln evtl. eher einen Preis pro Stück, usw.
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 18:09
Linux Distribution fuer langsame Rechner dementius Offtopic 8 23.10.2006 14:37
IE 5x UNd 6.0 auf einem Rechner? Kirsten CSS 2 29.05.2006 11:31
Mehrere Versionen des IE auf einem Rechner installieren Boris Ressourcen 3 01.08.2004 03:26


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:51 Uhr.