[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
xform / labelexist - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
dskip
Beiträge: 21
Registriert: 20. Jan 2011, 11:22

xform / labelexist

23. Jun 2011, 17:03

Hi!

So, nachdem ich weder mit der Forensuche noch mit google auch nur ansatzweise eine Lösung finde:

Ich nutze xform und versuche, über labelexist abzufragen, ob von zwei Feldern mindestens eines ausgefüllt wurde:
validate|labelexist|telefon,email|1|2|Bitte geben Sie eine Telefonnummer oder eine eMail-Adresse ein.

Allerdings gibt das nur true zurück, wenn das Feld eMail ausgefüllt wurde.

Nun habe ich mir mal rausschmeißen lassen, welche Felder in der Klasse rex_xform_validate_labelexist überhaupt kontrolliert werden.

Folgende Schleife aus der Klasse wirft beim Durchlaufen witzigerweise nur zweimal den Namen "email" raus - und sonst nichts (das Formular besteht aus 10 Feldern).

Code: Alles auswählen

foreach($this->obj_array as $o)
			{
echo $o->getDatabasefieldname();
				if (in_array($o->getDatabasefieldname(),$fields) && $o->getValue() != "") 
					$value++;
			}
Was mache ich falsch?

Viele Grüße,
Claus

iceman-fx
Beiträge: 467
Registriert: 13. Feb 2007, 16:16
Wohnort: Sachsen
Kontaktdaten: Website

Re: xform / labelexist

29. Sep 2011, 14:46

Würde mich auch interessieren, da ich ein ähnliches Probem habe.

Ich habe 5 Checkboxen und will nur prüfen, ob mind. eine gewählt wurde.
Jedoch prüft er nicht bzw. es ist immer true.

validate|labelexist|pros1,pros2,pros3,pros4,pros5|||Bitte wählen Sie mindestens ein Prospekt aus

Edit:
Habe jetzt zum Test mal die beiden optionalen Werte für min/max angegeben.
Nun ist es immer false, wenn Checkbox 1-4 gewählt werden. Nur wenn ich die 5. anwähle ist es true:
validate|labelexist|pros1,pros2,pros3,pros4,pros5|1|5|Bitte wählen Sie mindestens ein Prospekt aus
VG iceman

_____________________________________________________________
www.fotodesign360.de / www.falkomueller.com

ovo
Beiträge: 73
Registriert: 13. Okt 2010, 12:56

Re: xform / labelexist

11. Mär 2012, 12:24

Hallo,
hat jemand inzwischen ein Lösung dafür gefunden? Habe leider dasselbe Problem.
LG
Stefan

Benutzeravatar
kerstinrossek
Beiträge: 30
Registriert: 7. Jan 2011, 16:25
Wohnort: Hamburg

Re: xform / labelexist

13. Jun 2012, 13:06

Hallo zusammen,

dieser Thread macht mir keine großen Hoffnungen, aber vielleicht weiß jemand irgendwas und schreibt dies auch irgendwann rein....?! :-)

Ich habe das gleiche Problem. Eine Anzahl von Checkboxen und der Rest siehe oben.

Liebe Grüße
Kerstin

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: xform / labelexist

13. Jun 2012, 13:15

Ich würde das per Javascript machen. Häng an den submit-Event des Formulares eine Funktion die überprüft, ob mindestens eine Checkbox angehakt ist. Wenn nicht, verhinderst du das submitten und gibst über alert() einen Hinweis an den Nutzer aus.

Benutzeravatar
frag-seb
Beiträge: 211
Registriert: 27. Sep 2011, 17:53
Wohnort: München
Kontaktdaten: Website

Re: xform / labelexist

13. Jun 2012, 14:42

Hallo zusammen,

ich klinke mich mal kurz ein, es müsste sich jemand die Prüfungen im allgemeinen wieder vornehmen.

Also ich ändere die Abfrage immer genau für mein "Form" ab, es kommen zu viele wirre
Informationen zurück.
Mal ist es so das eine array leer zurück kommt ([1]=> ), wenn das Feld/Checkbox/Selcet leer ist, mal kommt gar nichts an (das wird glaube ich auch derzeit geprüft), dann mal "null" oder "false" also alles irgendwie möglich.

Daher schau ich mir an was ich genau machen will (welche Felder ich brauche) und schreibe die Abfrage genau so um, dass sie für mich funktioniert.

Frag mal Jan, der kann sicher Helfen. :mrgreen:

Gruß
Jochen

NGW
Beiträge: 132
Registriert: 1. Mär 2011, 09:12
Kontaktdaten: Website

Re: xform / labelexist

13. Jun 2012, 15:36

Ingo hat geschrieben:Ich würde das per Javascript machen. Häng an den submit-Event des Formulares eine Funktion die überprüft, ob mindestens eine Checkbox angehakt ist. Wenn nicht, verhinderst du das submitten und gibst über alert() einen Hinweis an den Nutzer aus.
Per Javascript validieren ist eine ganz schlechte Idee. Einmal JS im Browser ausgeschaltet, kannst du alle Validierungen umgehen...

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: xform / labelexist

13. Jun 2012, 18:37

NGW hat geschrieben:Per Javascript validieren ist eine ganz schlechte Idee. Einmal JS im Browser ausgeschaltet, kannst du alle Validierungen umgehen...
Nicht jede Validierung ist kritisch. Wenns drum geht, an die Checkbox fürs Broschürenbestellen zu erinnern, ist eine clientseitige Validierung vollkommen ausreichend (und für den Nutzer sogar angenehmer, weil schneller).

Benutzeravatar
kerstinrossek
Beiträge: 30
Registriert: 7. Jan 2011, 16:25
Wohnort: Hamburg

Re: xform / labelexist

14. Jun 2012, 19:52

Ganz ganz herzlichen Dank an frag-seb! Er hat das Problem bei mir gelöst.

In der Klasse labelexist habe ich nur $this->Objects gegen $this->obj getauscht und alles lief einwandfrei!

:-) Ich freue mich!

Liebe Grüße
Kerstin

Benutzeravatar
frag-seb
Beiträge: 211
Registriert: 27. Sep 2011, 17:53
Wohnort: München
Kontaktdaten: Website

[SOLVED]Re: xform / labelexist

14. Jun 2012, 20:06

:lol:

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: xform / labelexist

14. Jun 2012, 23:06

Wenn das ein valider fix is bitte als PR bei Github einschmeissen: https://github.com/dergel/redaxo4_xform ... st.inc.php
vg, Jan

Benutzeravatar
frag-seb
Beiträge: 211
Registriert: 27. Sep 2011, 17:53
Wohnort: München
Kontaktdaten: Website

Re: xform / labelexist

15. Jun 2012, 00:40


Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: xform / labelexist

15. Jun 2012, 13:00

vg, Jan

Benutzeravatar
frag-seb
Beiträge: 211
Registriert: 27. Sep 2011, 17:53
Wohnort: München
Kontaktdaten: Website

Re: xform / labelexist

15. Jun 2012, 13:17

https://github.com/frag-seb/redaxo4_xfo ... 3c45771620

Das hab ich gestern einen geschüttet nur wurde noch nicht angenommen oder bearbeitet..
Wenn ich was falsch gemacht hab bitte ich dich es ab zuändern.

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: xform / labelexist

15. Jun 2012, 13:26

Ahso.. du hast das in deinem fork commited ;) mach daraus n Pull Request @ dergel..
vg, Jan

Benutzeravatar
frag-seb
Beiträge: 211
Registriert: 27. Sep 2011, 17:53
Wohnort: München
Kontaktdaten: Website

Re: xform / labelexist

15. Jun 2012, 13:55

Ich hab das bis jetzt immer so gemacht, was anscheinend nicht richtig ist.
Denke das was ich jetzt gemacht hab, ist immer noch falsch, also würdest du bitte es machen?

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: xform / labelexist

16. Jun 2012, 00:21

frag-seb hat geschrieben:Denke das was ich jetzt gemacht hab, ist immer noch falsch, ..
Jetzt paßts.. du hast erfolgreich einen PullRequest deines edits gemacht. Alternativ wäre es auch möglich gewesen - und das ist bei edits an einzelnen files fast zu empfehlen - einen ad hoc edit über das Github Interface zu machen.. d.h. zu dem file durchnavigieren und per Edit this file die Änderungen ad hoc vornehmen. Zu dieser Variante braucht man keinen exliziten eigenen fork den man lokal bearbeiten müßte..
frag-seb hat geschrieben:.. also würdest du bitte es machen?
Nope.. learning by doing ;)

An dieser Stelle ein Verweis auf http://www.redaxo.org/de/forum/allgemei ... 17577.html
vg, Jan

Marshall
Beiträge: 70
Registriert: 8. Dez 2008, 22:05

Re: xform / labelexist

9. Okt 2013, 09:55

Guten Tag allerseits,
ich versuchte eben per xform zu prüfen ob ein Feld gesetzt ist und wenn ja, ob bestimmte weitere Felder ebenfalls gefüllt wurden, fand aber auf Anhieb keine Möglichkeit per labelexist o.ä.

Jetzt habe ich folgende Validierungsmöglichkeit zusätzlich angelegt, die auch funktioniert - aber ich frage mich trotzdem obs so Sinn macht oder mans kürzer/besser schreiben bzw. anders lösen könnte:

Code: Alles auswählen

class rex_xform_validate_labelset extends rex_xform_validate_abstract {

    function enterObject() {
        if ($this->params["send"] == "1") {

            // Felder die geprüft werden sollen
            $fields = explode(",", $this->getElement(3));

            // Flags
            $fieldsSet = TRUE;
            $labelSet = FALSE;

            foreach ($this->obj as $o) {
                // Label (2) checken ob ausgefüllt/gesetzt
                if ($o->getName() === $this->getElement(2) && $o->getValue() != "") {
                    $labelSet = TRUE;
                }

                // Fields (3) checken ob ausgefüllt/gesetzt
                if (in_array($o->getName(), $fields) && $o->getValue() === "") {
                    $fieldsSet = FALSE;
                }
            }

            // Finally Check
            if (TRUE === $labelSet && FALSE === $fieldsSet) {

                // Fehlermeldung
                $this->params["warning_messages"][] = $this->getElement(4);

                // Fehler class
                foreach ($this->obj as $o) {
                    if (in_array($o->getName(), $fields)) {
                        $this->params["warning"][$o->getId()] = $this->params["error_class"];
                    }
                }
            }
        }
    }

    function getDescription() {
        return "labelset -> wenn erstes ausgefüllt, muß mindestens ein weiteres feld ausgefüllt sein, example: validate|labelset|label|label1,label2|Fehlermeldung";
    }
}


Viele Grüße
Marshall

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: xform / labelexist

11. Okt 2013, 10:08

Marshall hat geschrieben:Guten Tag allerseits,
ich versuchte eben per xform zu prüfen ob ein Feld gesetzt ist und wenn ja, ob bestimmte weitere Felder ebenfalls gefüllt wurden, fand aber auf Anhieb keine Möglichkeit per labelexist o.ä.
Versteh ich nicht. Was ist denn an labelexist verkehrt?
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Marshall
Beiträge: 70
Registriert: 8. Dez 2008, 22:05

Re: xform / labelexist

11. Okt 2013, 13:37

Hi Xong,
mit labelexist kann man doch nur prüfen ob mindestens ein Feld gesetzt wurde, aber doch nicht abhängig davon ob ein weiteres gefüllt ist oder nicht...?

In meinem Fall sieht das Formular so aus:
Ich bitte um Rückruf [X checkbox] am [datum textfeld] zwischen [uhrzeit textfeld] und [uhrzeit textfeld]

Jetzt will ich testen, nur wenn die Checkbox angecheckt ist, ob der User auch ein Datum eingeben hat.

Oder ginge das auch mit labelexist?

Viele Grüße
Marshall

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: xform / labelexist

11. Okt 2013, 19:52

Hi Marshall!
Marshall hat geschrieben:Jetzt will ich testen, nur wenn die Checkbox angecheckt ist, ob der User auch ein Datum eingeben hat.

Oder ginge das auch mit labelexist?
Stümmt, das geht nicht. Jetzt hab ich auch verstanden, wofür deine Klasse ist.

Ich finde dein Vorgehen übrigens vollkommen in Ordnung. Ich programmiere mir auch manchmal gewisse Klassen dazu, die meine Anforderungen abdecken.
Die werden dann über ein Addon XForm bekannt gemacht. So kann ich auch schnell neue Versionen von XForm installieren, ohne das meine Spezialklassen verfallen.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Zurück zu „Allgemeines [R4]“