Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modulsuche ›

Berechnung aus Formulardaten und gespeicherten Werten?

Eingetragen von Rolfy (105)
am 14.08.2008 - 01:04 Uhr in
  • Modulsuche
  • Drupal 5.x

Ich möchte folgendes Projekt mit Drupal umsetzen:

Eine Site, die es ermöglicht z. B. verschieden strukturierte Miettarife von Mietwagenfirmen konkret anhand der Mietdauer und der gefahrenen Kilometer direkt zu vergleichen. Einem Besucher steht eine Formularseite zur Verfügung in der er z. B. eingibt, daß er einen Wagen 3 Tage mieten will und 700 km damit fährt. Dann klickt er einen "Vergleichen"-Button und erhält eine Gegenüberstellung der konkreten Kosten bei verschiedenen Mietwagenfirmen. Am Besten sollten die einzelnen Ergebnisse auch noch nach Preis aufsteigend sortiert sein.

Mein theoretischer Ansatz dazu sieht folgendermaßen aus:

In einem speziellen Inhaltstypen werden Tarifdaten der verschiedenen Mietwagenfirmen eingegeben wie z. B. Miete/Tag, inbegriffene Kilometer, Preis/Zusatzkilometer etc. Für jede Mietwagenfirma wird ein separater Node angelegt. So können die Daten bequem gepflegt werden.
Mit Webform wird ein Formular erstellt, in dem die gewünschte Mietdauer und die vorraussichtlich gefahrenen Kilometer eingegeben werden können.
In einem View werden die berechneten Kosten für die im Formular eingegebenen Daten und die im entsprechenden Mietwagenfirma-Node zugrundeliegenden Tarifdaten ausgegeben und entsprechend sortiert.

Ich frage mich nun, ob das Ganze auf diese Art überhaupt zu realisieren ist.

Eine andere Herangehensweise wäre, die Berechnung in Webform selbst mittels "Additional Processing" zu integrieren, dort auch eine Sortierfunktion einzuschließen und die Ergebnisse auf der Redirect-Seite anzuzeigen.

Die dritte Möglichkeit die ich sehe wäre, auf der Redirect-Seite für jede Mietwagenfirma entsprechende "Computed-Fields" mittels CCK anzulegen, die die Berechnung aus den Formular-Daten und den Tarifdaten aus dem entsprechnden Mietwagenfirma-Node ausführen. Nur stellt sich da die Frage, ob und wie die Ergebnisse sortierbar wären.

Ich habe schon mit der zweiten Methode (Webform -> Additional Processing -> Redirect-Seite) herumprobiert, allerdings ohne allzu weit zu kommen. Das liegt wohl vor allem an meinen mangelnden PHP-Kenntnissen und daran, daß ich noch nicht verstanden habe, wie ich die Formulardaten aufrufen kann.

Hat hier jemand schon ähnliche Projekte umgesetzt und kann mir sagen mit welchem Ansatz das realisierbar ist?

Schöne Grüße und im Vorraus vielen Dank.

‹ sofort meldung an angemeldeten benutzer senden Aufgabenverwaltung und Issue Tracker ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Computetd Field

Eingetragen von maximago (860)
am 14.08.2008 - 08:30 Uhr

Ich denke das sollte sich mit Compueted Field machen lassen.
Das ist ein sehr flexibles Ding. Dort kannst Du beispielsweise auch
nur die Ausgabe definieren und alle anderen Felder,
auch das was in die DB gehen soll, leer lassen.
So haben wir immer wieder z.B. FunktionsIcons in Tabellen-Views generiert.
Oder Datenbankauswertungen eingefügt.
Beispiel:
Content-type Projekt und verknüpfter Content-Type Leistung.
Projekt hat ein Feld geschätzte Aufwendung. Ein kaluliertes Feld
im Projekt berechnet nun den prozentualen Verbrauch an Leistung, in dem
es alle verknüpften Leistungen addiert und prozentual ausrechnet.
Du musst nur vorsichtig sein mit der Performance...

Viele Grüße,

www.maximago.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie auf Formulareingaben zugreifen?

Eingetragen von Rolfy (105)
am 14.08.2008 - 14:09 Uhr

Vielen Dank. Das mit Computed Filelds kenne ich so weit. Die Frage ist vielmehr, WIE greife ich auf die Formulareingaben zu bzw. wie übergebe ich die Formulardaten an den Node/Computed Field, das dann letztendlich als Field im View(Tabelle) angezeigt wird?
Meine sehr rudimentären PHP-Kenntnisse reichen da nicht ganz aus.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn ich in Webform mittels

Eingetragen von Rolfy (105)
am 15.08.2008 - 10:41 Uhr

Wenn ich in Webform mittels "Additional Processing" einen redirect z. B. auf node/7 mache:

<?php
$node
->webform['confirmation'] = 'internal:node/7';
?>

Und in Webforms Settings unter "Advanced Options" 'Full Debug' einstelle, zeigt es mir auf node/7 sämtliche Formvariablen an:

* $form_values are:

Array
(
[submitted] => Array
(
[2] => 10
[1] => 20
)

[details] => Array
(
[email_subject] => none
[email_from_name] => none
[email_from_address] => mail@email.cc
[nid] => 1
[sid] => 74
[is_new] => 1
)

[op] => Submit
[submit] => Submit
[form_token] => 8e829484c1007e0d7f04d10a388d447f
[form_id] => webform_client_form_1
[submitted_tree] => Array
(
[eingabe_1] => 10
[eingabe_2] => 20
)

)

* $_SERVER is:

Array
(
[REDIRECT_STATUS] => 200
[HTTP_HOST] => localhost
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16
[HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
[HTTP_ACCEPT_LANGUAGE] => de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
[HTTP_ACCEPT_ENCODING] => gzip,deflate
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
[HTTP_KEEP_ALIVE] => 300
[HTTP_CONNECTION] => keep-alive
[HTTP_REFERER] => http://localhost/drupal1/node/1
[HTTP_COOKIE] => SESSe68a5598f27bdd46df5887bf895e93fb=e3ff67fa7dfe38fb0ce9e585e9bd49d8
[CONTENT_TYPE] => multipart/form-data; boundary=---------------------------124641062825585
[CONTENT_LENGTH] => 992
[PATH] => C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;D:\PROGRA~1\DISKEE~1\DISKEE~1\
[SystemRoot] => C:\WINNT
[COMSPEC] => C:\WINNT\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
[WINDIR] => C:\WINNT
[SERVER_SIGNATURE] => Apache/2.2.4 (Win32) DAV/2 mod_ssl/2.2.4 OpenSSL/0.9.8d mod_autoindex_color PHP/5.2.1 Server at localhost Port 80

[SERVER_SOFTWARE] => Apache/2.2.4 (Win32) DAV/2 mod_ssl/2.2.4 OpenSSL/0.9.8d mod_autoindex_color PHP/5.2.1
[SERVER_NAME] => localhost
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[REMOTE_ADDR] => 0.0.0.0
[DOCUMENT_ROOT] => D:/Apache/htdocs
[SERVER_ADMIN] => admin@localhost
[SCRIPT_FILENAME] => D:/Apache/htdocs/drupal1/index.php
[REMOTE_PORT] => 0
[REDIRECT_QUERY_STRING] => q=node/1
[REDIRECT_URL] => /drupal1/node/1
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] => q=node/1
[REQUEST_URI] => /drupal1/node/1
[SCRIPT_NAME] => /drupal1/index.php
[PHP_SELF] => /drupal1/index.php
[REQUEST_TIME] => 1218792203
[argv] => Array
(
[0] => q=node/1
)

[argc] => 1
)

* $_POST is:

Array
(
[submitted] => Array
(
[eingabe_1] => 10
[eingabe_2] => 20
)

[details] => Array
(
[email_subject] => none
[email_from_name] => none
[email_from_address] => mail@email.cc
)

[form_token] => 8e829484c1007e0d7f04d10a388d447f
[form_id] => webform_client_form_1
[op] => Submit
)

Aber wenn ich dann versuche, so z. B. den Wert von 'eingabe_1' anzuzeigen, kommt nix:

<?php
print($_POST['submitted']['eingabe_1']);
?>

Was mache ich da falsch? Kann mir da jemand helfen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Übergabe und Berechnung der Formulardaten

Eingetragen von Rolfy (105)
am 17.08.2008 - 23:26 Uhr

Wie die eingegebenen Werte in den Weiterleitungs-Node übergeben werden und wie man sie dort Anzeigen bzw. berechnen kann habe ich mittlerweile heausgefunden: http://www.drupalcenter.de/handbuch/12212

Nun offenbart sich aber ein ganz anderes Problem:
Ein "Computed Field" kann in einem View gar nicht angezeigt werden. Nach meinem Kenntnisstand liegt der Grund dafür einfach darin, daß ein View grundlegend eine Datenbank-Abfrage erzeugt, das Computed Field ist aber nicht in der Datenbank gespeichert. Natürlich gibt es dabei die Option, das Computed Filed (oder das Ergebnis) in der Datenbank zu speichern.
Aber wenn ich das richtig sehe, würde ich ja von der Formular-Seite zum View weiterleiten. Dabei wird der Node, in dem das Computed Field ist, aber gar nicht geladen. Also wird die gewünschte Berechnung gar nicht ausgeführt und es würde falls überhaupt, der alte, gespeicherte Wert im View angezeigt.

Hat da jemand eine Idee, wie das zu bewerkstelligen ist ohne Seitenweise Code zu brauchen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Korrektur

Eingetragen von Rolfy (105)
am 31.08.2008 - 01:26 Uhr

Hier eine Korrektur bzw. 'Update' zu meinem vorigen Statement:

Zitat:

Ein "Computed Field" kann in einem View gar nicht angezeigt werden. Nach meinem Kenntnisstand liegt der Grund dafür einfach darin, daß ein View grundlegend eine Datenbank-Abfrage erzeugt, das Computed Field ist aber nicht in der Datenbank gespeichert.

  1. Ein Computed Field kann in einem View angezeigt werden wenn es gespeichert wird.
  2. Dann steht man aber vor dem Problem, daß die Berechnung beim Abschicken des Formulars aber nicht im View neu berechnet wird. Dazu müßte der Node, in dem sich das Computed Field befindet, neu gespeichert werden. Dafür gibt es aber eine Lösung die jedoch recht komplex ist, siehe: http://drupal.org/project/view_of_views
  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 3 Tagen
  • Hey danke
    vor 2 Wochen 4 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 5 Stunden
  • In der entsprechenden View
    vor 4 Wochen 5 Stunden
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 5 Stunden
  • gelöst
    vor 6 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20456

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 14 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association