Feldprüfung mit we:userInput mittels PHP?

Hier können Sie Fragen bezüglich der Kundenverwaltung stellen.
fresh
Junior Member
Beiträge: 21
Registriert: Mo 31. Jan 2005, 12:02

Feldprüfung mit we:userInput mittels PHP?

Beitragvon fresh » Sa 1. Jul 2006, 14:14

Hallo Leute, bin noch nicht so versiert mit webedition und habe auch schon einige beiträge im forum gelesen. aber leider habe ich keine nützlichen hinweise gefunden, wie man ein gute feldprüfung bei einem eingabeformular im frontend, also mit userInput machen kann. Und zwar nicht mit JavaScript sondern mit PHP. Ich habe den folgenden Code für die Eingaben im Frontend:

<we:form type="object" id="self" method="post" classid="4" name="eingabe01">
<input type="hidden" name="we_ui_we_global_form[kundenid]" value="<?php echo $kundenidx;?>">
<p>
Objekttitel:

<we:userInput name="inseratetitel" type="textinput" size="46"/>
</p>
<p>
Beschreibung:

<we:userInput name="objektbeschreibung" type="text" size="46"/>
</p>
<p>
<input type="submit" name="submit" value="eintragen">
</p>
</we:form>

Wie kann ich nun diese beiden Felder mittels PHP ansprechen? Da sich diese Seite ja selber wieder aufruft sollte der we:write Befehl erst ausgeführt werden, wenn die beiden Felder erfolgreich geprüft sind, also nicht leer sind! Mit <we:ifUserInputEmpty match="inseratetitel" formname="eingabe01"> kann ich ja nur jeweils ein Feld abfragen und eine verschachtelung funktioniert auch nicht! Danke für jegliche Inputs....

Daniel

ThomasGoebe

Beitragvon ThomasGoebe » Sa 1. Jul 2006, 21:18

Hallo Daniel!

Code: Alles auswählen

<we:form type="object" id="self" method="post" classid="4" name="FORMNAME">
[hier die Eingabefelder]
</we:form>
M.E. kannst Du wie folgt auf die UserInput Variablen zugreifen.

Code: Alles auswählen

<?php
  $meinFeld = $_REQUEST['we_ui_FORMNAME]['FELDNAME'];
?>
Probiers mal aus. Du kansnt Dir mittels

Code: Alles auswählen

<?php p_r($_REQUEST); ?>
auch mal die gesendeten Daten ausgeben lassen.
Ich weiss nicht genau, wie die einzelnen Feldtypen übermittelt werden.

Sobald Du die Namen hast, kannst Du dann ja jedwede Prüfung vornehmen und nur bei Erfolg <we:write> nutzen.

Um nur zu prüfen, ob die Felder leer sind, kannst Du auch etwas wie

Code: Alles auswählen

<we:setVar to="global" nameto="formerror" value="0" />
<we:ifUserInputEmpty match="inseratetitel" formname="eingabe01">
  <we:setVar to="global" nameto="formerror" value="1" />
</we:ifUserInputEmpty>

<we:ifUserInputEmpty match="FELDNAME2" formname="eingabe01">
  <we:setVar to="global" nameto="formerror" value="1" />
</we:ifUserInputEmpty>

<we:ifVar type="global" name="formerror" match="0">
  <we:write...>
</we:ifVar>
nutzen.

Und wenn es um Objekte geht, könnte es auch reichen, die unbedingt auszufüllenden Felder in der Klasse als Pflichtfelder zu definieren. <we:write> sollte dann bei fehlenden Eingaben zumindest nichts speichern und Du kannst mit <we:ifWritten type="object"> erfragen, ob der Schreibvorgang erfolgreich war.
Wenn nicht, müssen dann natürlich noch entsprechende Meldungen mit einem Link zurück oder ähnlichem erfolgen, aber das muss ja in jeder Version sein.

fresh
Junior Member
Beiträge: 21
Registriert: Mo 31. Jan 2005, 12:02

Beitragvon fresh » So 2. Jul 2006, 13:09

Hallo Thomas, vielen Dank für die ausführlichen Infos! Ich werde dies gleich testen...

staeubli

Beitragvon staeubli » Di 4. Jul 2006, 18:43

Hallo Thomas, soweit funktioniert die Sache. Ich habe jedoch eine Seite, auf die ich Mittels datei.php?we_editObject_ID=xxx zugreife. Dort habe ich ein Hidden-Field im Formular platziert und dies wird im Quelltext angezeigt:
<input type="hidden" name="we_ui_eingabe01[objektart]" value="K_Gewerbeobjekt">. Dieses Feld wurde im ersten Forumlar ausgefüllt und somit im 2. Formular auch korrekt angezeigt!

Innerhalb dieses Formulars möchte ich nun eine Abfrage erstellen, die je nach «objektart» andere Eingabefelder zeigt, natürlich der selben Klasse! Ich hab folgende Abfrage gemacht:

Code: Alles auswählen

<?php
  		$objektartx = $_REQUEST['we_ui_eingabe01']['objektart'];
  		echo $objektartx;
  		if ($objektartx == "K_Gewerbeobjekt") { ?>
Aber diese Abfrage zeigt komischerweise überhaupt keine Wirkung. Erst wenn ich die Submit-Schaltfläche betätige, wird alles richtig engezeigt. Ich nehme an, dass der Ausdruck nicht über $_REQUEST sondern anders erfolgen muss. Aber wie??? Vielen Dank für die erneute Hilfe!

staeubli

Beitragvon staeubli » Di 4. Jul 2006, 20:00

So klappts....

Code: Alles auswählen

$objektartx = $HTTP_SESSION_VARS['we_object_session_eingabe01']['0']['elements']['objektart']['dat'];
  		if ($objektartx == "K_Gewerbeobjekt") { ?>


Zurück zu „Kundenverwaltung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste