Checkbox als Pflicht?

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Checkbox als Pflicht?

Beitrag von Christian_N »

Hallo, kann man mir ein Beispiel geben wie ich eine checkbox als pflicht machen kann?
Also eine Checkbox anlegen in der Registierung wird wohl das geringste problem sein nur wie ich diese prüfen lassen kann ob des häkchen gesetzt ist und falls nein das dann eine meldung ausgegeben wird "Du musst die AGB aktzeptieren!" z.B. - schonmal danke für des oder die beispiele :)

Gruß Chris
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wann soll die Meldung angezeigt werden?
Unmittelbar beim Klick auf den Absenden-Button oder reicht es nach dem Absenden des Formulars?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

also vllt. am beste danach in der error message box die oben angezeigt wird, wie wenn nicht alle pflicht felder ausgefüllt sind steht dann auch oben eine meldung.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann wäre im PHP-Script das Feld auf den Wert zu prüfen, der zurückkommen soll. Also z. B. wenn die Checkbox mit value="1" und name="agb" angelegt ist, wäre die Bedingung in der PHP-Datei folgende:

Code: Alles auswählen

if (!isset($HTTP_POST_VARS['agb']) || intval($HTTP_POST_VARS['agb']) == 0)
{
$error_message = 'Die AGB's wurden nicht akzeptiert. Kehre zurück, um dieses nachzuholen.'; // Oder auch ein in der lang_main.php definierter $lang['..']-Eintrag
}
Und $error_message kann man dann an das Template übergeben und die weitere Verarbeitung danach anhalten.
Also in etwa:

Code: Alles auswählen

if($error_message)
{
$template->assign_block_vars('error_block', array(
'ERROR_MESSAGE' => $error_message));
}
else
{
// Der Code, der zur Anzeige des Formulars verwendet wird, aber nicht die Speicherung der Daten!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Oki danke, dann versuch ich mal jetzt die checkbox zu machen und mit dein beispiel dieses dann ausprobiern obs klappt. - Meld mich dann ggf. wieder.

EDIT: Also ich dachte das bei dem MOD vom Acid auch eine anleitung dabei gewesen war wie man eine checkbox anstelles eines eingabenfeld hinzufügen kann, aba da hab ich mich wohl getäuscht gibt nur Option (Also die Radio-Button mit JA/NEIN) und Dropdown z.B.
Ok, ggf. kann ich auch statt der Checkbox die Option mit JA/NEIN machen, aba dann wäre sicher die prüfung wieder anders wenn nein ist soll fehler kommen wenn ja ist soll true sein also gespeichert werden.

Aba vllt. kenn ja ggf. jem. ein MOD oder kann mir so so grob sagen wie ich die checkbox herstellen kann damit es auch gespeichert wird in der DB, dazu muss was auch in der usercp_register.php gemacht werden und dann ist auch die für die DB sicher der wert bei eine checkbox anders :(

Schonmal jedenfalls danke für die hilfe :(

EDIT2: Also hab mal mit dem MOD von Acid ein weiteres textfeld hinzugefügt und dann in der profile_add_body.tpl dies gemacht

Code: Alles auswählen

	<tr> 
	  <td class="row1"><span class="gen">{L_FC_REGEL}:</span></td>
	  <td class="row2">Ja: <input type="checkbox" name="fc_regel" value="{FC_REGEL}" /> </td>
	</tr>
die Checkbox wird angezeigt jedenfalls, wenn man ein häkchen reinsetzt und dann auf "Absenden" klickt, wirds auch jedenfalls gespeichert ohne fehlermeldung sagt die Infoseite jedenfalls.

Aba, er tuts wohl nicht speichern, den wenn man wieder drauf geht ist des Häkchen wieder drausse, und in der DB wo vorher "NULL" stande ist dann leer des feld, denk mal da müsste mindeste dann eine 1 stehn damit er auch wenn man im Profil geht prüfen kann ob 1 steht wenn true des häkchen drin hat, wenn NULL oder nichts drin steht eben flase und des häkchen nicht drin hat.

Nur wie mach ich das dass er auch in der DB dann in des feld 1 schreibt, wenn des häkchen gesetzt wurde und somit true ausgibt? *grubel*
So einfach wars doch net mist :(

EDIT3: Hat sich erledigt, habs halt doch mit des Optionfeld wo man "JA" bzw. "NEIN" zum auswählen hat, wenn es auf "NEIN" spricht value="0" ist wird der Fehlermeldung ausgegeben, ist es auf "JA" somit value="1" gestellt, wirds gespeichert :)
Mit Checkbox, wärs halt schöner gewesen, aba so gehts zu not auch :D

Gruß Chris
Zuletzt geändert von Christian_N am Mo 07.Aug, 2006 23:14, insgesamt 3-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Checkbox muss so definiert werden, damit "1" zurückkommt:

Code: Alles auswählen

<td class="row2">Ja: <input type="checkbox" name="fc_regel" value="1" /> </td>
Wenn diese dann nicht angehakt wird, ist der Parameter "fc_regel" nicht gesetzt und bei der Abfrage intval($HTTP_POST_VARS['fc_regel']) kämme dann eine 0 raus.
Zuletzt geändert von oxpus am Di 08.Aug, 2006 11:06, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Muss ich den Abend wenn ich zuhause an mein PC bin dann mal versuchen, aba mit dem MOD von Acid wenn man ein neues Eingabenfeld hinzufügt, da wird dann nirgends

Code: Alles auswählen

intval($HTTP_POST_VARS['info']) 
hinzugefügt (info soll dann mit wasauchimmer ersetzt werden in mein fall dann fc_regel)

Da wäre dann die frage wo ich den dann hinzufügen müsste in der usercp_register.php damit es auch funktionieren würden.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

intval($HTTP_POST_VARS['info']) ist ja auch nur der Teil der Bedingung, die Du auch für andere Felder einbauen musst.
Ich meinte ja auch nur, daß hier "1" rauskommt, wenn die Checkbox angehakt wird, aber "0", wenn das der User eben nicht gemacht hat.
In eine Bedingung (wie auch für die anderen Feldtypen) musst Du das schon noch einbauen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Hab ich aber wie gesagt nicht, war bei der anleitung vom mod nichts dabei, und in der usercp_register.php sind auch nur 2 die mit intval( anfangen einmal weiter oben für die user_id und dann weiter unten nochmal für style - mehr hab ich davon nicht dabei.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

In dem MOD sind doch die Übernahmen mit $feldname = (isset($HTTP_POST_VARS[...]) ? ..... drinnen. Und genau hier ist doch auch die Checkbox mit genau der gleichen Weise zu übernehmen.
Wird nur dann diese Zeile draus:

Code: Alles auswählen

$fc_regel = (isset($HTTP_POST_VARS['fc_regel'])) ? intval($HTTP_POST_VARS['fc_regel']) : 0;
Also die Übernahme, wie hier gezeigt, weist $fc_regel bei angehakter Checkbox eine 1 zu, da intval($HTTP_POST_VARS['fc_regel']) eintritt = alles i. O., ansonsten ist $fc_regel eben 0 und damit in einer weiteren Abfrage und letztlich Meldung zu beanstanden.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Hm, ja gefunden wird also nur diese:

Code: Alles auswählen

	$fc_regel = ( isset($HTTP_POST_VARS['fc_regel']) ) ? ( ($HTTP_POST_VARS['fc_regel']) ? TRUE : 0 ) : 0;
Dann soll ich also diese mit die von dir ersetzen?
Ok ich versuchs mal - muss nur die änderrung von der Optionfelder erst wieder rückgängig machen.

P.S. hab gerade eine Mail erhalten das ich benachrichtige werde möchte auf neue Antworten auf diese Thema, dabei hatte ich garnicht den Befehl dazu erteilt gehabt ^1

EDIT: habs mal gemacht, also wenn des häkchen nicht drin ist, dann kommt die fehlermeldung, ist es drin kommt die meldung nicht und wird gespeichert.

zumindste find ich in die tabelle in der DB unter user_fc_regel eine 1 und ist nicht mehr Leer bzw. NULL - aba geh ich erneut auf profil ist des häkchen wieder drausse, eigentlich sollte er ja jetzt in dem fall dann doch sofern in der DB 1 steht des häkchen gesetzt lassen, muss wohl noch was falsch sein.

Womöglich müsste eine prüfung da noch er in der art $checked = ( isset($HTTP_POST_VARS['fc_regel'] == 1) ) ? checked : ''; - so das in der tpl. datei noch irgendwie checked="{CECKED}" steht und in der php dann CHECKED defeniert wird und die prüfung macht ob 1 er ausgibt.
Nur wie mach ich das genau jetzt? *rätselt*

P.S. Versuchs jedenfalls mal so.
Zuletzt geändert von Christian_N am Di 08.Aug, 2006 20:18, insgesamt 2-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Für die Profilanzeige muss aus den Profildaten "checked" gesetzt werden.
Schau da mal genauer die anderen Werte an, die mit "_yes" und "_no" gesetzt werden...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Bekomm es nicht hin irgendwie, auch wenn in der Datenbank NULL steht ist des häkchen drin. :(

EDIT: wie es aussieht hab ich es hinbekommen, habe jetzt in der tpl datei hinter value="1" noch {FC_REGEL} hinzugefügt und diese in der php datei so defeniert:

Code: Alles auswählen

'FC_REGEL' => ( $fc_regel ) ? 'checked="checked"' : '',
- jetzt ist wenn NULL bzw. des feld leer ist in der DB, des häkchen nicht drin, ist in der DB 1 so ist des häkchen drin :)

Dann sag ich mal danke für die hilfe, hoffe das es jetzt ohne fehler alles läuft :)
Zuletzt geändert von Christian_N am Di 08.Aug, 2006 21:53, insgesamt 1-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

...

Für das Template wäre dieses hier nötig:

Code: Alles auswählen

'FC_REGEL_CHECK' => ($fc_regel) ? 'checked="checked"' : '',
und in der Checkbox-Definition in der profile_add_body.tpl wäre dann {FC_REGEL_CKECK} einzufügen, um eben die Checkbox nach dem gespeicherten Profildaten anzuhaken oder eben nicht.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Zeitgleich, lach - danke für die info aber noch - hab ich nähmlich auch gerade rausgefunden :)
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na, dann ist ja alles klar.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten