Ich verwende einen einfachen Ein/Aus-Schiebeschalter, um ein Feld in meiner Datenbank zu aktualisieren.Verwenden von An/Aus Checkbox Gleitschalter zum Ausführen von SQL-Abfrage
Ich stelle es auf "kein Problem", aber es dem Benutzer zu erlauben, es auszuschalten, scheint mir Probleme zu machen. Ich habe mehrere Schalter auf dieser Seite, also wenn ich "sende", wird es "on" Werte auf "aus" schalten, es sei denn, ich entferne die elseif Aussage.
Es scheint, dass der Code das $ _POST ['check-twitter'] als "isset" ansieht, wenn es eingeschaltet ist, aber "! Isset", wenn ich es von on auf off umschalte.
Wenn ich meinen Code ändere, um stattdessen "elseif (! Isset ....)" dann wenn ich wieder auf die Seite komme, erkennt es nicht die "on" -Position als "isset", so dass es automatisch dreht es weg. Es scheint widersprüchlich zu dem, was als "isset" und "! Isset" betrachtet wird.
Ich möchte der Switch nur die Datenbank aktualisieren, wenn der Benutzer es ändert, und ich brauche den Schalter, um den Benutzer anzuzeigen, ob es "ein" oder "aus" ist.
// $twitter_check represents the field from the database which equals 'Yes' or 'No'
<label class="switch">
<input type="checkbox" name="check-twitter" <?php echo $twitter_check == 'Yes'?'checked':''; ?>>
<div class="slider"></div>
</label>
if(isset($_POST['check-twitter']) && $twitter_check == "No"){
//SQL UPDATE $twitter_check = 'Yes'
} elseif(isset($_POST['check-twitter']) && $twitter_check == "Yes") {
//SQL UPDATE $twitter_check = 'No'
}
<input class="button" type="submit" name="submit" value="Save"/>
wo/wie hast du '$ twitter_check' definieren? es gibt hier nicht genug code und wenn es tatsächlich eine post-methode gibt. –
@ Fred-ii- Wie ich in meinem Beitrag gesagt habe, stellt $ twitter_check das Feld aus der Datenbank dar, das gleich 'Ja' oder 'Nein' ist. Es gibt offensichtlich mehr Code auf meiner Seite, auf dem die SQL-Abfrage und das Formular angezeigt werden, aber es ist nicht relevant für das Verständnis des Problems, das ich erfahre, und ich versuche nur, den Code zu präsentieren, in dem das Problem besteht. – Shane