[GastForen Programmierung/Entwicklung PHP und MySQL checkbox-Wert in Session-Variable

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

checkbox-Wert in Session-Variable

ET
Beiträge gesamt: 6

26. Aug 2004, 15:14
Beitrag # 1 von 5
Bewertung:
(2142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kann mir jemand bei folgendem Problem helfen?

In einem mehrseitigen Formular habe ich eine Frage mit einer checkbox. Die Eingaben speichere ich jeweils in Session-Variablen.
Die Besucher können mit Vor- und Zurückknöpfe durch das Formular navigieren. Mein Problem: Wenn ich nun eine checkbox markiere, wird dies brav in der Session-Variable gespeichert. Wenn ich aber zu dieser Frage zurückkehre und die Markierung lösche, bleibt der Eintrag in der Session-Variable gespeichert. Wie kann ich der Session-Variable klar machen, das die checkbox nicht mehr markiert ist? Hat jemand eine Lösung?

Nachfolgend der jeweils eingesetzte Code:

Code der Checkbox:
<input name="f23b" type="checkbox" id="f23b" value="ja" <?php if($_SESSION['form_f23b']=="ja") echo "checked"; ?>>

Code für die Speicherung in die Session-Variable:
if(isset($_POST['f23a']))
$_SESSION['form_f23a']=$_POST['f23a'];
X

checkbox-Wert in Session-Variable

Miro Dietiker
Beiträge gesamt: 699

26. Aug 2004, 21:59
Beitrag # 2 von 5
Beitrag ID: #105405
Bewertung:
(2142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi!

Das Problem ist, dass die Checkbox-Variable nur dann gesendet
wird, wenn sie ausgewählt ist!
Das bereitet mir auch so manche Probleme.
Du musst also ein "HIDDEN"-feld nachen, um zu prüfen, ob
das Formular gesendet wird.
In diesem Fall musst du dann das Checkbox-Feld mit = 0 initialisieren,
und mit = $_POST['f23a']; überschreiben, wie gegeben unten!

Code der Checkbox:
<input name="action" type="hidden" value="save">
<input name="f23b" type="checkbox" id="f23b" value="ja" <?php if($_SESSION['form_f23b']=="ja") echo "checked"; ?>>

Code für die Speicherung in die Session-Variable:
if(isset($_POST['action']) && $_POST['action']=='save')
{
$_SESSION['form_f23a']='nein';
if(isset($_POST['f23a']))
$_SESSION['form_f23a']=$_POST['f23a'];
}

Hoffe es hilft :-)

GrEeZ: Miro Dietiker


als Antwort auf: [#105343]

checkbox-Wert in Session-Variable

Anonym
Beiträge gesamt: 22827

27. Aug 2004, 10:45
Beitrag # 3 von 5
Beitrag ID: #105457
Bewertung:
(2142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Clever! Merci für die Hilfe!

Ja, auf diese Weise könnte es funktionieren. Werde es ausprobieren.

In der Zwischenzeit habe ich es so gelöst, dass ich direkt im Formular drin nach der Input-Zeile einen PHP-Code unset() eingefügt habe um die entsprechende Session-Variable zu löschen. Dies funktioniert weitgehend auch, nur habe ich gemerkt, dass er ca. jedes zweite Mal nach dem Löschen des Checkbox-Hakens der Wert trotzdem gespeichert wird. Für mich unerklärlich.

Deine Lösung scheint mir aber noch sicherer zu sein. Werde sie testen. Merci!


als Antwort auf: [#105343]

checkbox-Wert in Session-Variable

Pozor
Beiträge gesamt: 892

27. Aug 2004, 12:35
Beitrag # 4 von 5
Beitrag ID: #105492
Bewertung:
(2142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo,

@miro

IMHO hatt

if(isset($_POST['action']) && $_POST['action']=='save')

das selbe erbeniss wie:

if($_POST['action']=='save')

wenn $_POST['action'] den inhalt save hatt ist der return wert 1
wenn $_POST['action'] nicht gesetzt ist ist der return wert 0

es macht doch keinen sinn isset($_POST['action']) auch zu testen?

gruss Pozor

PS: ich würde es so programmieren:
if('save' == $_POST['action'])
denn wie schnell geht ein = verloren... so merkt es der interpreter!

http://www.boelsterli.biz


als Antwort auf: [#105343]

checkbox-Wert in Session-Variable

Miro Dietiker
Beiträge gesamt: 699

28. Aug 2004, 12:37
Beitrag # 5 von 5
Beitrag ID: #105612
Bewertung:
(2142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich programmiere halt nach anderen Konventionen...

Wenn wir den PHP-Interpreter auf
<?PHP
error_reporting(E_ALL);
?>
setzen, wird gemotzt, wenn man eine ungesetzte Variable als
"R-VALUE" einsetzt... sprich ihren Inhalt als Quelle anspricht.

In deiner "schnellen Lösung" machst du das einfachso und gehst
davon aus "wenns nicht gesetzt ist steht schon nicht 'save' drin".

Grundlegend kann ich nicht empfehlen, so zu programmieren und es
wird auch von der PHP-Community diese Art der Implementation nicht
empfohlen.
Die Verwendung dieser Interpreter-Option kann ich nur empfehlen,
da dadurch sehr viele Fehler nicht passieren. Ein nachträgliches
aktivieren in einem grösseren Projekt resultiert jedoch häufig
in einer mehrseitigen Liste von potentiellen Fehlern / Warnungen.

Miro Dietiker


als Antwort auf: [#105343]
X

Aktuell

InDesign / Illustrator
ScreenShot 274 Warum Templates in InDesign benutzen_ - Satzkiste in Stuttgart - Satz und technische Umsetzung - Google Chrome (300x300 HilfDirSelbst)

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/