Pflichtfeld dynamisch zuweisen z.B. oxuser__oxcompany

Moin,

ich habe das Formular für die Rechnungsadresse so umgestellt, dass per JavaScript die Felder Firma und USt-ID aus bzw. eingeblendet werden (Privat vs. Firma).

Frage ist nun, wie man die Pflichtfeldanweisung dynamisch in das Formular rein bekommt, d.h. wenn Firma sind die beiden Pflichtfelder…

Die beiden “Variablen” oxuser__oxcompany und oxuser__oxustid in den Grundeinstellungen auf “Pflicht” einzuspeisen ist nicht die Lösung, da dann die Felder auch bei Privat ausgefüllt sein müssen :frowning:

Ideen dazu?!?

Moin schopper :slight_smile:

Modul mit IF/ELSE Struktur in Template Datei.

Die Entscheidung für Firma oder Privat musst du dir merken. Evtl. mit einem Hidden-Field oder Radio-Button. Ich habe jetzt nicht im Kopf wie das Standard Formular für die Rechnungsadresse aussieht. Musst du schauen wie du es am besten löst :slight_smile:

Viele Grüße
indianer3c

“Modul mit IF/ELSE Struktur in Template Datei.”
???

das Ein-/Ausblenden funktioniert ja - und der Wert bzw. Gruppenzuweisung (Händler) wird über ein Modul auch gemacht…

[B]Es geht mir um die dynamisch Ansteuerung der PHP-Validierung[/B] - die JS-Validierung bekommt man hin mit entfernen der [{if $oView->isFieldRequired(oxuser__oxustid) }]

Meine eine IF/ELSE Struktur im Smarty Template Datei z.B.

[{if $oView->isCompany()}]
... Felder USt-ID und Firma einblenden
[{/if}]

Ein ELSE Fall benötigst du dann doch nicht.

Viele Grüße
indianer3c

… hmm…

aber wenn ich oxuser__oxcompany und oxuser__oxustid in den Grundeinstellungen als Pflichtfelder definiere, werden die doch von PHP validiert - oder?

d.h. bei “Privat” gehts nicht weiter, da Felder Leer/nicht vorhanden

hi schopper :slight_smile:

dies habe ich nicht bedacht, würde es wahrscheinlich ausprobieren um dann festzustellen was passiert…

Ansonsten habe ich mir die OXID PHP-Validierung noch nicht angeschaut.

Viele Grüße
indianer3c

Hallo, das geht über ein Modul. Zur Ansicht: http://480.foxido.de/konto-eroeffnen/
Einfach mal einen Wert in das Firmenfeld eintragen, Button klicken und Wert wieder entfernen. Die Ladeinfo kann natürlich auch ein Bild sein. :wink:

o.k. - von der Optik habe ich das i.E. auch so - siehe Screenshots…

die Validierung per JS funktioniert bei mir da die Felder class=“req” und class=“js-oxValidate js-oxValidate_notEmpty” usw. haben

Frage ist, wie die Validierung PHP dynamisch angepasst wird?

Wenn ich in dem Formular http://480.foxido.de/konto-eroeffnen/ die CSS-Klassen entferne, wird anscheinend keine weiter Validierung durchgeführt

Welche Klassen? Das ist eine dynamische Prüfung mit Ajax.

Oder meinst Du ohne jQuery, d.h. wenn man Javascript abschaltet? Das geht auch. Kann ich heute Abend mal einfügen.

[QUOTE=foxido.de;140588]wenn man Javascript abschaltet? Das geht auch. Kann ich heute Abend mal einfügen.[/QUOTE]

genau! man muss die PHP-Validierung ja dynamisch auf die zwei Felder Firma+UST (auf Pflichtfeld) erweitern können…

Ist schon drin :wink:

wo drinn? in dem Modul?

gibts ein Tipp?

Ja, da wo der Link hinging. Er prüft jetzt auch “mit ohne” jQuery…

… o.k. - ist die Lösung geheim?

Hast ne PN

Ok, also ich stehe vor dem selben Problem. Die Lösung ist also eine simple If-Abfrage in php?
Stelle mir gerade die Frage wie ich das mache. Möchte den Code nicht allzu sehr verändern, damit man weiterhin im Admin-Bereich Einstellungen tätigen kann.

Ich möchte eigentlich nur, dass mir nur bei der Auswahl der Firma das “isrequired”-Feld angezeigt wird. Geht es, wenn ich einfach zur unteren Anfrage eine weitere Bedingung (in Fett) hinzufüge?

<label [{if $oView->isFieldRequired(oxuser__oxustid && $value|lower == “co” ) }]class=“req”[{/if}]>[{ oxmultilang ident=“FORM_FIELDSET_USER_BILLING_VATIDNO” }]</label>
<input [{if $oView->isFieldRequired(oxuser__oxustid) }]class=“js-oxValidate js-oxValidate_notEmpty” [{/if}]type=“text” size=“37” maxlength=“255” name=“invadr[oxuser__oxustid]” value=“[{if isset( $invadr.oxuser__oxustid ) }][{ $invadr.oxuser__oxustid }][{else}][{ $oxcmp_user->oxuser__oxustid->value }][{/if}]”>

      *

Hat jemand vielleicht einen Tip, wie ich ihm beibringen kann, dass nur das Unternehmen das Feld required bekommt?

Hier der HTML-Text der Begrüssungsform:

<input id=“salutation_co__invadr[oxuser__oxsal]” class=“salutation” type=“radio” name=“invadr[oxuser__oxsal]” value=“CO”>

Dachte mir, dass das so gehen müsste, oder?:

if $oView->(oxuser__oxsal ==“co”)

Noch eine Frage zu Formulardaten. Gibt es in OXID eine Funktion, wo ich prüfen kann, ob ein Punkt ausgewählt ist? Wenn ja, dann könnte ich ja sagen, wenn das Feld checked… dannn… ustid is required. Also ich meine so eine Zeile aus dem HTML code:

<input id=“salutation_mr__invadr[oxuser__oxsal]” class=“salutation” type=“radio” name=“invadr[oxuser__oxsal]” value=“MR” checked=“”>

Das heißt, ich frage mich, wie ich das checked ansprechen kann. Also ich will sagen, dasss wenn dieser MR checked ist, dann soll er ein Feld als required angeben.

Hat vielleicht noch jemand einen Tip, wie ich das umsetzen kann?

Na klar gibt es das. Schau mal bei den AGB :wink: