Empfehlungen: Erweiterte Suche

von 4 Input-Feldern mind. 2 ausfüllen

Fragen zur Konzeptionierung und womit man am besten anfäng? Hier rein...

von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon rapid10 » Do 8. Dez 2011, 16:05

Hallo,

ich bin neu in der Welt von CakePHP aber mir gefällt das Framework wirklich sehr gut. Ich bin schon fortgeschrittener PHP-Kenner. Daher benötige ich (hoffentlich) nur das Konzept dafür. ;-)

Ich habe ein Formular mit 4 Input-Feldern (Zahlen, dezimal). Davon sollen mind. 2 ausgefüllt werden. Welche sind egal. Wie überprüfe ich nun, ob mind. 2 Fehler ausgefüllt wurde? Zudem kommt, dass diese Fehler voneinander abhängig sind. Es geht dabei um Geldbeträge und einen MwSt.-Satz (Netto, Brutto, MwSt., MwSt. Betrag). Es sollte überprüft werden, ob die Relationen stimmen.

Es kommt jetzt noch dazu, dass, wenn nur 2 Felder ausgefüllt werden, die anderen errechnet werden müssen, um dann in die Datenbank eingetragen werden zu können.

Wie könnte ich nun ein Konzept erstellen, dass mir diese Vorgehensweise ermöglicht?

Wäre super, wenn ich eine Antwort erhalten würde. :-)
Danke!
rapid10
 
Beiträge: 4
Registriert: Do 8. Dez 2011, 15:49
CakePHP-Version: 2.0
OS: OS X Lion

Re: von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon euromark » Do 8. Dez 2011, 17:02

einfach ne custom validation rule machen, die dann das prüft.
http://book.cakephp.org/view/1179/Custo ... tion-Rules
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon rapid10 » Do 8. Dez 2011, 17:36

Super! Danke! Nur wie könnte ich das lösen? Wie kann ich die einzelnen Felder ansprechen? Mit dem Namen des Inputfeldes? Und wie kann ich dann die fehlenden Informationen ergänzen, so dass sie in die Datenbank eingetragen werden?

Danke!
rapid10
 
Beiträge: 4
Registriert: Do 8. Dez 2011, 15:49
CakePHP-Version: 2.0
OS: OS X Lion

Re: von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon euromark » Do 8. Dez 2011, 17:55

auf meinem blog sind beispiele:
http://www.dereuromark.de/2010/07/19/extended-core-validation-rules/

auf $this->data kann ganz normal zugegriffen werden
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon rapid10 » Do 8. Dez 2011, 21:53

Gut, das hilft mir allerdings auch nicht wirklich viel weiter. Aber ich habe mich einmal mit den Überprüfungen herumgespielt. Ich brauche logischerweise einmal eine Schleife, wo ich alle 5 Felder überprüfe, ob ein Inhalt vorhanden ist. Würde ich mit foreach machen. Habe jedoch keinen Schimmer wie ich das umsetzen könnte bzw. wie ich überprüfe, ob das Feld leer ist.

Nach dem Überprüfen muss ich ja die leeren Felder auffüllen. Wie funktioniert das? Ich finde dazu absolut null im Internet. Macht man so etwas mit CakePHP etwa nicht?

EDIT: Ich nutze CakePHP 2.0.
rapid10
 
Beiträge: 4
Registriert: Do 8. Dez 2011, 15:49
CakePHP-Version: 2.0
OS: OS X Lion

Re: von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon euromark » Do 8. Dez 2011, 23:21

genau
foreach und jeweils immer
Code: Alles auswählen
if (!empty($this->data[$this->alias][$field])) {}
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon rapid10 » Fr 9. Dez 2011, 00:11

Hmm ... irgendwie mag das nicht funktionieren. Also ich frage ab, ob das Feld leer ist.
Code: Alles auswählen

function validationAtLeastTwo( $field = array() )
{
     foreach( $field as $value )
     {
          if (!empty($this->data[$this->alias][$field]))
          {
               //wenn nicht leer...  
          }
          else
          {
               //wenn leer...
          }
     }
}
 

Das Grundkonzept habe ich somit. Allerdings wie kann ich nun prüfen, ob mindestens 2 von diesen Feldern besetzt wurden? Und kann ich mit dem beforeSave-Filter den Variablen im Array, das beim Absenden des Formulars erzeugt wurde, einen neuen Value zuweisen? Denn einige werden ja leer sein und müssen ausgerechnet werden.
rapid10
 
Beiträge: 4
Registriert: Do 8. Dez 2011, 15:49
CakePHP-Version: 2.0
OS: OS X Lion

Re: von 4 Input-Feldern mind. 2 ausfüllen

Beitragvon euromark » Fr 9. Dez 2011, 12:03

debug ist dein freund und helper
du solltest erstmal sicherstellen, dass die variablen die du benutzt den richtigen inhalt enthalten
was bei dir ganz sicher nicht der fall ist

debug($var)
oder
pr($var$)

mit die() in verbindung

und die fields musst du ja vorher schon irgendwie definieren...
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Konzeption und Vorgehensweise

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron