IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Pb de sauvegarde :( [Fait]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Par défaut [PHP-JS] Pb de sauvegarde :(
    Bonjour à tous,

    J'ai un formulaire à remplir, ce formulaire contient des input de type checkbox et radio, le principe est quand je coche les cases, les valeurs associees à ces dernieres sont enregistrees dans une BD , et qd je termine de remplir tt le formulaire je passe à une autre page.php , a ce stade tout va bien.

    Le pb c que quand, je veux revenir sur mon ancienne page, les cases ne sont plus cochees ( je veux dire celle du checkbox et de radio) ce que j'ai coche auparavant n'est pas sauvgradé
    Comment faire pour sauvgarder ?????

    Merci d'avance
    NB/ j'utilise easyphp 1.8

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Si tu as Internet Explorer, cela peut venir de là. Essaie avec Firefox.
    Côté code HTML, tu peux forcer l'attribut value="" de tes contrôles en utilisant tes variables de session PHP.

  3. #3
    NoT
    NoT est déconnecté
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Par défaut
    Salut,

    Il faut d'abord que tu analyses plus précisément d'ou vient le problème, dans ton cas ca vient soit de l'enregistrement des données dans la base, soit de la relecture de ces données au moment du réaffichage du formulaire.

    La meilleure chose à faire est de vérifier si les données ont bien été enregistrées dans ta base, via phpMyAdmin par exemple.

    ++

  4. #4
    Membre éclairé Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Par défaut
    non j'utilise pas IE , j'utilise firfox, et mes donnes s'enregistre bien ds ma BD parce que à la fin du qustionnaire y une page.phph qui represente un resumé de toutes les reponses faites avant.

    Le pb qui me pose c la savgarde des cases à cocher, car si qlq veux revenir à la pge precedante , je voudrais bien qu'elle vois se qu'elle à choisis (ce qu'elle a cocher) auaparavant , pour quelle puisse changer si elle le veux par rapport à ca

    y pas une ligne de code que je doit rajouter ou qlq chose de se genre pour sauvgarder ??
    je vous donne une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <tr><td><p><b>&nbsp;&nbsp;&nbsp;&nbsp;b. Style d'apprentissage</b></p></td><td></td></tr>
    <tr><td><br></td></tr>
    <tr><td><p>&nbsp;&nbsp;&nbsp;&nbsp;Ils existe plusieurs études concernant .... :&nbsp;&nbsp;
    <tr>
    <td>&nbsp;&nbsp;&nbsp;<input type="checkbox" name="checkbox_b1" value="l'imaginatif,">&nbsp;l'imaginatif,</td>
    </tr>
    <tr>
    <td>&nbsp;&nbsp;&nbsp;<input type="checkbox" name="checkbox_b2" value="l'analytique,">&nbsp;l'analytique,</td>
    </tr>
    <tr>
    <td>&nbsp;&nbsp;&nbsp;<input type="checkbox" name="checkbox_b3" value="le pratique,">&nbsp;le pratique,</td>
    </tr>
    <tr>
    <td>&nbsp;&nbsp;&nbsp;<input type="checkbox" name="checkbox_b4" value="le dynamique,">&nbsp;le dynamique,</td>
    </tr>
    <tr>
    <td>&nbsp;&nbsp;&nbsp;<input type="checkbox" name="checkbox_b5" value="on">&nbsp;autre(s), à préciser :&nbsp;<input name="autres_b2" size="50" value="" type="text">.</td>
    </tr>
    <tr><td><br></td></tr>

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Tu es obligé d'aller chercher les valeurs dans ta BDD pour les réafficher. Pas de solution miracle me semble-t-il.

  6. #6
    Membre éclairé Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Par défaut
    oui je suis consciente de ça , mais ce que je ne sais pas, c'est comment faire pour que la case cocher auparavant restera cocher apres un rafraichissmeent de la page.php (quand je recupere la valeur de la BD), ou doit-je ajouter mon code php (qui a pour but de recuperer la valeur de la BD) ??

  7. #7
    NoT
    NoT est déconnecté
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Par défaut
    Il te faut du PHP.
    Et l'histoire des boutons page suivante / page précédente je te déconseille de les utiliser dans ton systeme de navigation dès qu'il y a des historie de validation de formulaire.

    Rajoute plutot tes propres boutons de navigations "retour au menu" "retour au questionnaire", au moins tu controleras tout.

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Le plus efficace est bien sûr de mettre tout le formulaire en une seule page, cela évite tous ces problèmes.

    [Edit] Voici un tutoriel tout frais qui pourrait t'aider à organiser le formulaire :
    http://g-rossolini.developpez.com/tu...aires-et-php5/

  9. #9
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut

    Un formulaire de saisie pour l'enregistrement et un formulaire de récupération des variables en vue d'une modification ont 2 structures différentes.
    Tu ne peux pas utiliser le premier pour récupérer tes variables mais utiliser 2 formulaires bien distincts.

    De toute façon, si tu utilises le bouton précédent du navigateur, tu ne régleras pas le probléme, car tu ne pourras pas récupérer tes $variables.

  10. #10
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    Avec l'utilisation de formulaire probablement qu'en faisant un retour il va demander si tu veux re-soumetre tes valeurs car la page semble utiliser un formulaire

    bon j'avais le meme probleme car j'avais un formulaire super long que je voulais mettre sur 2 pages...alors comme la suggèré Yogui, je te coneil de le mettre sur la meme page ca évite des tracas... Comme ca tu peux valider tout tes champs obligatoir d'un seul coup si ya des soucis ben tu es dans la meme page alors...en a plus..

    Sinon, tu garde ta manière de voir...utilise tes propres boutons...encore une fois mentionné dans les post précédent...
    Et avant de faire la sauvegard en bd tu peux garder tout tes résultats dans un classe que tu garde en session ainsi, si tu veux revenir et faire afficher les case coché...tu y vas avec un petite condition en php sur les checkbox où au lieu de faire une requete a ta bd, tu as déjà tes résultat en session dans ta classe


  11. #11
    Membre éclairé Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Par défaut
    Bonjour a tous,

    Encore une fois est ce qu'une personne pourrra m'aider sur le pb de sauvgarde , je ne vois pas comment je pourrai le faire,

    Merci

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    salut
    je sais pas si ça va t'aider mais j'ai eu le pb ya pas longtemps
    j'ai trois boutons radio pour trier une liste en fonction de critères
    et je voulais également que le bouton sélectionné reste coché voici ce qu'on m'a proposé ici et ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="param_aff_DI" method="POST" action="<?php echo($_SERVER['PHP_SELF']); ?>">
    <table>
    <td><input name="CHOIX" value="no_di" type="radio" checked onClick="document.param_aff_DI.submit()">Par Numéro</td>
    <td><input name="CHOIX" value="mat_app" type="radio" <?php echo(isset($_POST['CHOIX']) && $_POST['CHOIX'] == "mat_app") ? 'checked' : ''; ?> onClick="document.param_aff_DI.submit()">Par Demandeur</td>
    <td><input name="CHOIX" value="no_serv" type="radio" <?php echo(isset($_POST['CHOIX']) && $_POST['CHOIX'] == "no_serv") ? 'checked' : ''; ?> onClick="document.param_aff_DI.submit()">Par Service</td>
    </table>
    et plus loin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      <?php
      if (isset($_POST["CHOIX"]))
      {
        $ordre = $_POST["CHOIX"];
      }
      //Récupération de la liste des demandes dans la table T_DI
      $req_di = mysql_query ("SELECT * FROM t_di order by $ordre DESC limit $nb_limit");
      $nb_di =  mysql_numrows($req_di);
    .... etc ....

  13. #13
    Membre éclairé Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Par défaut
    Citation Envoyé par unmulot
    salut
    je sais pas si ça va t'aider mais j'ai eu le pb ya pas longtemps
    j'ai trois boutons radio pour trier une liste en fonction de critères
    et je voulais également que le bouton sélectionné reste coché voici ce qu'on m'a proposé ici et ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="param_aff_DI" method="POST" action="<?php echo($_SERVER['PHP_SELF']); ?>">
    <table>
    <td><input name="CHOIX" value="no_di" type="radio" checked onClick="document.param_aff_DI.submit()">Par Numéro</td>
    <td><input name="CHOIX" value="mat_app" type="radio" <?php echo(isset($_POST['CHOIX']) && $_POST['CHOIX'] == "mat_app") ? 'checked' : ''; ?> onClick="document.param_aff_DI.submit()">Par Demandeur</td>
    <td><input name="CHOIX" value="no_serv" type="radio" <?php echo(isset($_POST['CHOIX']) && $_POST['CHOIX'] == "no_serv") ? 'checked' : ''; ?> onClick="document.param_aff_DI.submit()">Par Service</td>
    </table>
    et plus loin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      <?php
      if (isset($_POST["CHOIX"]))
      {
        $ordre = $_POST["CHOIX"];
      }
      //Récupération de la liste des demandes dans la table T_DI
      $req_di = mysql_query ("SELECT * FROM t_di order by $ordre DESC limit $nb_limit");
      $nb_di =  mysql_numrows($req_di);
    .... etc ....
    dis moi avec ce que tu m'as donne là ca ne marche pas , le code javascript sert a quoi ds cette partie là ??

  14. #14
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    lol je crois que tout le monde s'est un peu éparpillé là

    Ce qu'il faut faire dans le genre de ce qu'a dit unmulot, et comme il a été dit et oublié beaucoup plus haut, c'est de forcer l'attribut "checked" de tes checkbox si le champ leur correspondant dans la bd est rempli.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="monChamp" value="10" <? if(!empty($monChampDansLaBd)) echo 'checked="checked"' ; ?> />
    Soit c'est aussi simple que ça, soit j'ai rien compris à la question ...

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    Citation Envoyé par moonia
    dis moi avec ce que tu m'as donne là ca ne marche pas , le code javascript sert a quoi ds cette partie là ??
    ce n'est pas du javascript c'est du 98% php je préférais cette solution à la solution javascript
    la seule commande javascript c'est celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onClick="document.param_aff_DI.submit()"
    elle soumet le formulaire que j'ai appelé param_form_DI dès qu'on clique sur un bouton
    lorsque le formulaire est soumis il se recharge lui même, je n'envoie pas vers une autre page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    action="<?php echo($_SERVER['PHP_SELF']);?>"
    comme ça le programme fait les tests sur les valeurs soumises en même temps qu'il génère le formulaire : comme dit Sylvain faut forcer l'option checked au moment de la création des boutons en fonction de ce qui a été soumis par le formulaire

    je sais pas si c'est clair ce que je dis mais moi ça a résolu mon pb

  16. #16
    Membre éclairé Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Par défaut
    ok je vais essaye tt ce que tu m'as donner et j'espere que ca va marcher
    en tt cas merci pour ton aide

Discussions similaires

  1. Comment sauvegarder la base de données MySQL en PHP ?
    Par zana74 dans le forum Débuter
    Réponses: 32
    Dernier message: 17/02/2008, 16h17
  2. Réponses: 3
    Dernier message: 10/06/2007, 21h53
  3. Réponses: 6
    Dernier message: 07/06/2006, 19h00
  4. Réponses: 4
    Dernier message: 27/01/2006, 15h28
  5. [XML] [PHP] Sauvegarde fichier xml
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/10/2005, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo