[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
[SOLVED] xForm - Wenn RadioButton=Ja, dann Labels checken - 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/
morfer
Beiträge: 105
Registriert: 24. Mär 2009, 01:58

[SOLVED] xForm - Wenn RadioButton=Ja, dann Labels checken

7. Nov 2013, 21:44

Hallo, ich möchte gerne in einem Fieldset mit 2 Radio Buttons (Ja / Nein) 3 weitere Input Felder einblenden, wenn der Kunde auf Ja klickt. Das ist kein Problem, nun sollen erst wenn Radio Button "Ja" ausgewählt worden ist, die nächsten 3 Text Input Felder validiert werden.

Also so: Wenn Radiobutton "Ja" is checked, dann label3, label4, label5 auf notempty prüfen. Wenn Radiobutton "Nein" is checked, nichts validieren.

Ist das mit Boardmitteln von Xform möglich? Evtl. über "customfunction"? Gibt es dazu mehr Infos wie so eine eigene Funktion aussehen muss?

LG
Daniel W.

// Edit: Habe Infos gerade dazu gefunden, wo müsste ich diese Funktion deklarieren? Und kann ich innerhalb der Funktion auf andere Labels zugreifen?

Code: Alles auswählen

function foo($_label, $_value, $_additional_param)
{
  // $_label: Name des XForm-Felds
  // $_value: (eingegebener) Wert des XForm-Felds
  // $_additional_param: Zusätzlicher Parameter, mit dem du z. B. das Verhalten der Funktion steuern kannst. Du kannst ihn aber natürlich auch ignorieren, wenn du ihn nicht brauchst.

  // return: true oder false bzw. wird der Rückgabewert durch ein if boolesch ausgewertet. Wenn der Wert false ist, wird die Fehlermeldung ausgegeben.
}
Zuletzt geändert von morfer am 11. Nov 2013, 22:50, insgesamt 1-mal geändert.

morfer
Beiträge: 105
Registriert: 24. Mär 2009, 01:58

Re: xForm - Wenn RadioButton=Ja, dann andere Labels checken

7. Nov 2013, 22:47

EDIT//

Habe nun eine eigene Validation Klasse hinbekommen:
class.xform.validate_emptyradio.inc.php in /addons/xform/classes/validate

Code: Alles auswählen

<?PHP

class rex_xform_validate_emptyradio extends rex_xform_validate_abstract
{

  function enterObject()
  {
    if ($this->params["send"]=="1") {
	$radiobutton = $this->getElement(2);
	$targetLabels = explode(",",$this->getElement(3));
	
	 if (is_array($this->obj_array)) {

	 
	 foreach($this->obj_array as $get) {
	 if ($get->getName() == $radiobutton) {$value = $get->getValue();}
}
	 if ( $value == "j" ) { //radio button auf Wert "j" prüfen

      foreach($this->obj as $o) {
			if (in_array($o->getName(),$targetLabels)) {
			
				if ($o->getValue() == "") {$error = 1; $this->params["warning"][$o->getId()] = $this->params["error_class"];}

		  }
	  } if($error == 1) {
				  
				  $this->params["warning_messages"][] = $this->getElement(4);
				  }
	  
    }
  }
  }
}

  function getDescription()
  {
    return "emptyradio -> prüft ob radiolabel Wert "j" hat, erst dann prüfe auf empty bei labels1,2,3... validate|emptyradio|label(radio)|label1,label2,label3|warning_message ";
  }
  
}
?>
Aufgerufen wird das Ganze dann so:

Code: Alles auswählen

validate|emptyradio|radiolabel|label1,label2,label3|warning_message

Zurück zu „Allgemeines [R4]“