neues formularmodul :: w3concepts.form.v1

david78
Beiträge: 28
Registriert: Mi 22. Dez 2004, 15:10
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von david78 »

Hallo Andreas,

erstmal vielen Dank für das Modul, funktioniert super! :D

An alle:
Was ich noch suche, sind einzelne Fehlermeldungen für alle nicht ausgefüllten Felder, die dann untereinander über dem Formular erscheinen (statt der farblich hervorgehobenen Felder) und dass auf der Bestätigungsseite die eingetragenen Angaben angezeigt werden.

Hat jemand sowas evtl. schon gemacht?
Freue mich auf Eure Antworten und hoffe...

Gruss
David
arakis
Beiträge: 81
Registriert: Di 18. Nov 2003, 16:27
Kontaktdaten:

Vcard

Beitrag von arakis »

Hallo!

Das Modul ist genial... woraus ich leider nicht schlau werde ist der VCARD versand.. muss ein vcard versand definiert werden?? wie würde die anweisung aussehen??

Code: Alles auswählen

Firma/Institution (*):           
###name:Firma; type:text; size:15; mandatory:true### ->>VCARD??
wäre für hilfe sehr dankbar...
lg
arakis
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

nun, das modul ist nicht dafür geschaffen worden, emails an irgendwelche adressaten zu versenden. sondern nur, um email an eine konfigurierte email zu senden. und dafür ist eine vcard einigermassen nutzlos. freilich kann man das modul entsprechend anpassen. aber in der vorliegenden version ist das mitsenden einer vcard nicht möglich.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
arakis
Beiträge: 81
Registriert: Di 18. Nov 2003, 16:27
Kontaktdaten:

danke :-)

Beitrag von arakis »

danke für die antwort... schade...

lg
arakis
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

also machen lässt sich das allemal. und allzuschwierig dürfte es auch nicht sein. am besten du schraubst mal ein bisschen daran rum. :wink:
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
FranzK
Beiträge: 11
Registriert: Di 18. Jan 2005, 20:22
Kontaktdaten:

selects aus DB füllen

Beitrag von FranzK »

Hallo ,
ich möchte gern im Formular einige select-Boxen mit Werten aus einer Datenbank füllen. Die Tabellen und die zugehörigen Abfragen stehen vorher fest, müssen also nicht im Inputbereich erzeugt werden.
Ich stelle mir das so vor, daß ich im Outputbereich erstmal die Abfragen mache und für die Erzeugung des Formulars einen neuen typ im Platzhalter erstelle (z.B. dbselect), bei dessen Anwendung dann nicht option und optionvalue verwendet werden sondern in einer Schleife halt die Ergebnisse der DB-Abfragen ausgegeben werden.
Hat jemand schon mal was ähnliches gemacht bzw. scheint es mit diesem Modul überhaupt sinnvoll ?
Vielen Dank schon mal.
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

nun ja, das ist nicht unbedingt eine klassische anwendung. aber du könntest ja z.b. die formularvorlage dynamisch erzeugen.

allerdings habe ich so vom schiff aus den eindruck, der aufwand ist so grössser, als wenn du das formular als ganzes dynamisch erzeugst.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
FranzK
Beiträge: 11
Registriert: Di 18. Jan 2005, 20:22
Kontaktdaten:

Beitrag von FranzK »

nach den ersten Versuchen kommts mir auch so vor. Ich wollte halt gern die netten Gestaltungsmöglichkeiten für den Redakteur beibehalten und Deine Validierung ist ja auch nicht schlecht.
Nagut, vielleicht kann mans irgendwie mischen.

PS:
vom schiff aus
falls Du auf Reisen bist: viel Spaß und danke für die Antwort.
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

ach so, jetzt verstehe ich erst, was du genau vor hast. also die redakteure hätten dann einen platzhalter, den sie verwenden können? und du stellst im modul durch eine abfrage den inhalt sicher?

nun, das geht auf jeden fall. klingt interessant. ich schaue es mir gelegentlich mal an.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
FranzK
Beiträge: 11
Registriert: Di 18. Jan 2005, 20:22
Kontaktdaten:

Beitrag von FranzK »

ja, also ich bin da soweit.
Um nochmal zu sagen, was ich eigentlich wollte: es sollen alle bisherigen Funktionalitäten beibehalten werden und ich möchte zusätzlich, daß ich aus einer anderen Datenbank in ein select-Feld Daten einlese, z.B. sollen aus einer Datenbank xy Ländernamen eingelesen werden, die dann in der select-Box im Frontend zur Auswahl stehen, ohne daß ich sie explizit alle einzeln als option im Formularentwurf eintragen muß.
Dazu hab ich jetzt folgendes gemacht:
1. am Anfang des Output eine neue Klasse definiert für meine externe DB (kann man sich sparen, wenn die Tabellen mit in der Contenido-DB liegen):

Code: Alles auswählen

class DB_mydb extends DB_Sql {
	var $classname = "DB_mydb";
	var $Host ;
	var $Database ;
	var $User ;
	var $Password ;
	
	function DB_mydb(){
		$this->Host = $GLOBALS['My_Host'];
		$this->Database = $GLOBALS['My_Database'];
		$this->User = $GLOBALS['My_User'];
		$this->Password = $GLOBALS['My_Password'];
	}
}
Die Zugangsdaten für diese DB (also die Variablen My_Host ... usw.) habe ich mit genau diesen Bezeichnungen mit in der config.php untergebracht. Vielleicht geht dieser Part auch einfacher ... keine Ahnung.
Eine Instanz der Klasse erzeuge ich dann im Output im Konstruktor, der vorher leer war und jetzt so aussieht:

Code: Alles auswählen

function w3form() {
	$this->q = new DB_mydb;
} 
Die Variable q für die neue Instanz muß ich noch mit in der class w3form unterbringen:

Code: Alles auswählen

class w3form {

	var $email, $aufgedroeselt, $form, $formularFeld, $q;
Nun kann ich mir für jede select-Box, die ich mit Daten füllen aus dieser DB ein neues Konstrukt in der Funktion function formularFeld($attribute,$sent) als zusätzlichen case anlegen (z.B. direkt über case 'checkbox':

Code: Alles auswählen

case 'CountrySelect':
$query = "select CountryId, CountryName from country "; 
$this->q->query($query); 
echo "<select $parameter $style>";
echo '<option value="0">Bitte auswählen</option>';
while($this->q->next_record()) {
	if($this->q->f("CountryId") == (int) $_POST["{$attribute['name']}"]) $sel=" selected "; else $sel="";
	echo "<option $sel value='".$this->q->f("CountryId")."'>".$this->q->f("CountryName")."</option>\n";
}
echo "</select>";
break;
wobei der Name hinter dem case völlig frei ist, nur kann ich (oder besser der Redakteur) diesen dann im Formularentwurf genauso als Typ nutzen, wie alle anderen bereits vorhandenen Typen, z.B. so:

Code: Alles auswählen

###name:Land; type:CountrySelect; valid:integer; size:1; minvalue:1; ###
somit bleiben alle bisherigen Funktionalitäten erhalten, es funktioniert auch die Validierung (hier habe ich ein 'Bitte auswählen' mit dem value=0 als erstes eingefügt und geprüft wird auf integer mit größer 0).

Allerdings habe ich festgestellt (vielleicht habe ich auch eine veraltete Version?), daß die Prüfung auf integer nicht funzt, wenn ich einen Wert 0 verwende, wie im Beispiel. Das liegt an folgender Stelle im Output:

Code: Alles auswählen

function formularFeldKorrekt(&$feld) {

	// prüfung, ob pflichtfeld vorhanden
	if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && empty($_POST["{$feld['name']}"])) return false;
	
	// wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben
	if (empty($_POST["{$feld['name']}"])) return true;
empty ist nicht nur bei leerer Zeichenkette true sondern auch bei 0, Null oder nicht vorhandener Variable. Deshalb fliegt man vorzeitig aus der Prüfroutine raus und auch die Geschichte mit mandatory funzt nicht in jedem Falle. Besser wäre:

Code: Alles auswählen

function formularFeldKorrekt(&$feld) {
	// prüfung, ob pflichtfeld vorhanden
	if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && $_POST["{$feld['name']}"]=="") return false;

	// wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben
	if (!isset($_POST["{$feld['name']}"])) return true;
So funktionieren jetzt jedenfalls alle Prüfungen bei mir.
FranzK.

PS.: ich wiil keine Mail verschicken mit dem Formular sondern die Werte in einer DB speichern, aber darüber wurde ja früher schon mal gesprochen.
DLBDPiet
Beiträge: 5
Registriert: Mi 20. Okt 2004, 08:11
Kontaktdaten:

Beitrag von DLBDPiet »

Hi,

ist es möglich, als Antwortadresse die im Formular eingegebene zu senden?

Das einzige Problem ist, dass das Feld für die E-Mail-Adresse ja jeden beliebigen Namen haben kann, ansonsten dürfte das wohl nicht so schwierig sein - für jemanden der´s kann ...

DLBDPiet
FranzK
Beiträge: 11
Registriert: Di 18. Jan 2005, 20:22
Kontaktdaten:

Beitrag von FranzK »

kein Problem. Dazu wurde hier in diesem Thread schon mal was gesagt, schau mal ein paar Beiträge zurück.
DLBDPiet
Beiträge: 5
Registriert: Mi 20. Okt 2004, 08:11
Kontaktdaten:

Beitrag von DLBDPiet »

Wer lesen kann, ist mal wieder im Vorteil!

Danke! :oops:
ickehausen
Beiträge: 11
Registriert: Mo 7. Feb 2005, 09:56
Kontaktdaten:

Beitrag von ickehausen »

Hallo zusammen,

super das Modul!!!

Bei mir haut alles hin, bis auf eine Kleinigkeit:

Beim Eintragen eines neuen Beitrages wird nach dem Betätigen des Eingabe-Links folgende Fehlermeldung angezeigt:

Code: Alles auswählen

Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\Apache Group\Apache2\htdocs\contenido\cms\front_content.php(567) : eval()'d code:8) in C:\Programme\Apache Group\Apache2\htdocs\contenido\cms\front_content.php(567) : eval()'d code on line 621
Der Eintrag wird aber korrekt übernommen. Kann mir Jemand helfen?! :oops:
nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac »

hallo zusammen,

ich wollte mir auch das geniale modul einbauen und stehe vor dem gleichen problem wie zisco vor einiger zeit. bei mir wird beim editor folgendes angezeigt:

Code: Alles auswählen

Vorname / Nachname: 	###name:vorname; type:text; valid:simpletext; size:15; mandatory:true### / ###name:nachname; type:text; valid:simpletext; size:15; mandatory:true###
Land: 	###name:land; type:select; valid:integer; size:1; option:bitte auswählen; optionvalue:0; option:Schweiz; optionvalue:1; option:Deutschland; optionvalue:2; option:Oesterreich; optionvalue:3;value:1;minvalue:1###
Anzahl: 	###name:anzahl;type:text;valid:integer;size:3;value:12; minvalue:5; maxvalue:100###
zweites Land: 	###name:land2; type:select; valid:text; size:1; option:bitte auswählen; option:Schweiz; option:Deutschland; option:Oesterreich; value:Deutschland###
Geschlecht: 	###name:geschlecht;type:radio;valid:text; value:männlich; selected:true### männlich
###name:geschlecht; type:radio; valid:text; value:weiblich### weiblich
###name:geschlecht; type:radio; valid:text; value:geschlechtslos### geschlechtslos
Interessen: 	

###name:interesse[0];type:checkbox; valid:text; value:sport### Sport
###name:interesse[1]; type:checkbox; valid:text; value:unterhaltung### Unterhaltung
###name:interesse[2]; type:checkbox; valid:text; value:geschichte### Geschichte
###name:interesse[3]; type:checkbox; valid:text; value:internet; selected:true### Internet
###name:interesse[4]; type:checkbox; valid:text; value:sonstiges### Sonstiges
Bemerkungen: 	###name:bemerkungen; type:textarea; valid:text; rows:6; cols:30###
und als einziges der input button zu sehen. ich hatte erst einmal das beispielformular genommen, da dies meine ersten versuche in contenido sind. ich bräuchte jetzt nur noch ein gutes formular für einen bestellvorgang eines buches, dann hätte ich meine erste site mit contenido erstellt.
wer ist mir hierbei behilflich?
komme einfach nicht weiter...

nicnac
Gesperrt