6
votes

Économie de la case à cocher State sur recharger

Comment enregistrer l'état de la case à cocher via des sessions? J'utilise ce code jQuery pour basculer les options suivantes: xxx

mais lorsque je recharge, les cases à cocher sont de retour à leur état par défaut. Je sais que je devrais utiliser des sessions, mais comment faire l'état de la case à cocher persiste à l'aide de sessions dans PHP?

html: xxx


5 commentaires

Il pourrait être plus facile de stocker l'état des cases à cocher de localStorage pour les navigateurs qui le supportent ou en utilisant document.cookie


"Mais quand je recharge ..." - essayez-vous de maintenir l'état sur une page actualisée avant d'avoir soumis le formulaire au serveur ?!


@ W3D, il n'y a pas de forme. Il suffit de deux cases à cocher qui affichent des données. Si la case à cocher est décochée, il doit alors masquer les données correspondantes et cet état doit persister, jusqu'à ce qu'il soit vérifié à nouveau par l'utilisateur ou l'utilisateur ferme le navigateur ou se déconnecte.


FYI, vous n'avez pas besoin d'inclure [Mots-clés] dans le titre de la question. C'est ce que sont les étiquettes.


@Fusion S'il n'y a pas de formulaire réel (étant soumis), ceci est purement une question javascript (jQuery) et de la cookie, pas des sessions PHP ou (PHP). Vous devrez utiliser des cookies pour maintenir l'état.


3 Réponses :


-1
votes

Si ce n'est pas quelque chose que vous devez économiser dans la base de données, je vous recommande d'utiliser des cookies au lieu de sessions. Vous pouvez utiliser l'Easy JQuery Plugin de cookies . .


1 commentaires

Comment puis-je stocker l'état de la case à cocher dans le cookie. Toute aide serait appréciée.



0
votes

Il y a un moyen, mais vous devez faire un cours de changement, il fonctionnera si vous soumettez via un formulaire ou jQuery avec le même nom de paramètre (nom_txt et réf_txt).

Cochez la case Entrez un nom P >

<?php
if(isset($_REQUEST['name_txt']))
    $name_text = $_REQUEST['name_txt'];
if(isset($_REQUEST['ref_txt']))
    $ref_text = $_REQUEST['ref_txt'];
    ?>
    <p><input type="checkbox" name = "name_txt" value="Name" id="name" <?php echo ($name_text == 'Name' || !isset($name_text))?'checked':'';?> /> 
    <label for="name">Name</label></p>  
    <p><input type="checkbox" name = "ref_txt" value="Reference " id="reference" <?php echo ($ref_text == 'Reference' || !isset($ref_text))?'checked':'';?> /> <label for="reference">Reference</label></p>


2 commentaires

en quelque sorte ne fonctionne pas. De plus, je veux que la valeur par défaut soit vérifiée, de sorte que le texte est affiché. Mais avec ce code, il affiche le code même si le code est décoché [par défaut] sur pageload.


Pouvez-vous montrer votre script php plz? Soumettez-vous des informations à travers la forme ou jQuery? comment? S'il vous plaît définissez clairement.



9
votes

purement en prise en charge JavaScript localStorage si disponible, sinon à l'aide de document.cookie . xxx

Jsfiddle Demo disponible - Cliquez sur certaines cases à cocher, puis" Exécuter "le script à nouveau!


6 commentaires

Merci! La démo fonctionne merveilleusement et dans mon projet, l'état de la case à cocher persiste, mais les données correspondantes s'affichent toujours sur PAGELOAD, même si la case à cocher est décochée.


@Fusion - Peut-être quelque chose d'autre dans une section de code différente, pouvez-vous publier un lien vers la page réelle, je peux essayer de le faire piquer pour vous.


@gnarf, merci, mais le projet n'est pas encore en ligne. J'ai essayé de le déranger aussi, ça ne jette aucune erreur comme telle. La seule ligne du code ci-dessus que j'ai changé était ce $ ('# ab _' + this.id) .toggle ($ (ceci) .is (': coché')); . pourrait-il être à cause de ce changement d'identifiant?


mettre un point d'arrêt sur cette ligne / la gâchette («changement»); ligne et voir s'il est exécuté


Est-ce que cela exécute cette ligne. La chose drôle est que lorsque je mets le point d'arrêt et l'exécuté, cela fonctionne comme il se doit. .mais sans le point d'arrêt, il ne fait pas -, il affiche le texte si la case à cocher est décochée.


Et quelle est la meilleure façon de supprimer les données sur les statuts de la case à cocher du stockage?