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
Feldprüfung mit we:userInput mittels PHP?
Hallo Daniel!
M.E. kannst Du wie folgt auf die UserInput Variablen zugreifen.
Probiers mal aus. Du kansnt Dir mittels 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
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.
Code: Alles auswählen
<we:form type="object" id="self" method="post" classid="4" name="FORMNAME">
[hier die Eingabefelder]
</we:form>
Code: Alles auswählen
<?php
$meinFeld = $_REQUEST['we_ui_FORMNAME]['FELDNAME'];
?>
Code: Alles auswählen
<?php p_r($_REQUEST); ?>
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>
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.
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:
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!
<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") { ?>
So klappts....
Code: Alles auswählen
$objektartx = $HTTP_SESSION_VARS['we_object_session_eingabe01']['0']['elements']['objektart']['dat'];
if ($objektartx == "K_Gewerbeobjekt") { ?>
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste