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 :

Garder les valeurs du formulaire en cliquant sur un lien


Sujet :

Langage PHP

  1. #1
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut Garder les valeurs du formulaire en cliquant sur un lien
    Bonjour à toutes et à tous,

    J'ai un formulaire (un générateur de quiz en quelques sorte...), j'ai réussi à faire des liens "+" et "-" devant chaque champs de saisie qui permettent d'ajouter ou de supprimer un choix (en fin de compte un champs de texte <input type=text >):

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <form action="quiz.html" method="get">
    <table>
    <tr>
    <td>Enter your question:</td>
    <td><input type="text" name="question" /></td>
    <td></td>
    <td></td>
    </tr>
    <?php 
    for($i=1;$i<$cp;$i++){ ?> 
    <tr>
    <td>Choice <?php echo $i; ?>:</td>
    <td><input type="text" name="choix" value="<?php if(isset($_GET['compteur'])) 
    echo $_GET['choix']; ?>"/></td>
    <td><a href="Acceuil.php?compteur=<?php echo $cp+1; ?>" title="Add choice"><b><h3>+</h3></b></a></td>
    <td><a href="Acceuil.php?compteur=<?php echo $cp-1; ?>" title="Remove choice"><b><h3>-</h3></b></a></td>
    </tr>
    <?php } ?>
    <!--- BOUTON ---->
    <tr>
    <td><input type="submit" value="Finish" /></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <!--- FIN BOUTON ---->
    </table>
    </form>
    Le problème c'est que lorsque je clique sur "+" ou bien "-", je souhaite que la valeur saisie dans l'un des champs de saisie reste existante lorsque la page "Acceuil.php" se recharge de nouveau ....

    J'ai essayé de faire un essaie (Le code en rouge) ... mais ça ne fonctionne plus ....

    Comment faire?

    Merci pour vous!

  2. #2
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    Est ce que je dois mettre la fonction dans le form "GET" ou bien "POST" ?

    Je veux que les valeurs saisies dans les champs de textes restent même si clique sur les liens "+" et "-"

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Pour passer des valeurs de pages en pages il y a moult solutions

    $_GET { dans l'url prevoir les + et les moins, mais le client peu tricher )
    $_POST { c pareil mais plus discret }
    $_SESSION { c mieux, si tu débute c'est même au top }

    Avec une base de données, c'est le niveaux après les sessions..;

    dit nous, ce que tu en penses
    Conception / Dev

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Ascito a dit le principal, je ferais juste un petit rajout.
    Si tes données ne sont pas sensibles, tu peux utiliser un input type=hidden :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="maValeur" value="<?php echo $laValeurQueJeVeuxGarder; ?>/>
    Tu peux également te renseigner sur la fonction $_SERVER['QUERY_STRING'], si ton formulaire comporte beaucoup d'étapes (à ce moment là, il faut passer par la méthode GET).

  5. #5
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    J'ai essayé de procéder comme montre un peu ce code(puisque j'ai consulté quelques autres solutions):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <td>Enter your question:</td>
    <td><input type="text" name="question" value="<?php if(isset($_GET['compteur'])){
     echo $_GET['question']; 
     
     }else echo ''; ?>"/></td>

    mais je reçois cette faute:

    <br /><b>Notice</b>: Undefined index: choix in <b>C:.....
    Avec compteur est une variable que je teste au début du code :

    if(! isset($_GET['compteur'])){
    $cp=2;
    }
    else {
    $cp = $_GET['compteur'];
    }
    Que dois-je faire?

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    je comprends vraiment pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php if(isset($_GET['compteur'])){
     echo $_GET['question']; 
     
     }else echo ''; ?>
    tu test que $_GET['compteur'] existe mais tu essai d'afficher $_GET['question']???
    Conception / Dev

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tes boutons + et - sont des liens HTML (balise <a>), comment veux-tu récupérer sur le serveur des valeurs (celles de ton formulaire) que tu n'envoies pas ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    Tes boutons + et - sont des liens HTML (balise <a>), comment veux-tu récupérer sur le serveur des valeurs (celles de ton formulaire) que tu n'envoies pas ?
    C'est en fait ça .. oui

    autrement dis, je veux garder les valeurs saisies dans les champs "input" quand je cliques sur le ( + ) ou bien sur le ( - )...

    Je ne sais pas si vous avez bien compris ma problématique !
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <style> 
    a{ 
    text-decoration:none; 
    } 
    </style> 
    </head>
     
    <body>
     
    <?php 
    if(! isset($_GET['compteur'])){
    $cp=2;
    }
    else {
    $cp = $_GET['compteur'];
    ?>
    <script type="text/javascript">
    alert("<?php echo $cp; ?>");
    </script>
    <?php
    }
     ?>
    <form action="quiz.html" method="get">
     
    <table>
    <tr>
    <td>Enter your question:</td>
    <td><input type="text" name="question" value="<?php if(isset($_GET['compteur'])){
     echo $_GET['question']; }  else echo ''; ?>" /></td>
    <td></td>
    <td></td>
    </tr>
    <?php 
    for($i=1;$i<$cp;$i++){ ?> 
    <tr>
    <td>Choice <?php echo $i; ?>:</td>
    <td><input type="text" name="choix" value="<?php if(isset($_GET['compteur'])){
    echo $_GET['choix'];  }  else echo ''; ?>" /></td>
    <td><a href="Acceuil.php?compteur=<?php echo $cp+1; ?>" title="Add choice" ><b><h3>+</h3></b></a></td>
    <td><a href="Acceuil.php?compteur=<?php echo $cp-1; ?>" title="Remove choice"><b><h3>-</h3></b></a></td>
    </tr>
    <?php } ?>
    <!--- BOUTON ---->
    <tr>
    <td><input type="submit" value="Finish" /></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <!--- FIN BOUTON ---->
    </table>
    </form>
    </body>
    </html>

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    pour les formulaires c'est pas $_GET, c'est $_POST, tu devrais regarder ca http://php.net/manual/fr/reserved.variables.php
    Conception / Dev

  10. #10
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    Je le sais très bien, rien ne va changer si je remplace $_GET par $_POST...
    Le $_GET est utilisé pour récupérer les variables passé en URL !!!

    Le problème c'est que, comme a dit Bovino, je veux récupérer sur le serveur des valeurs (celles de mon formulaire) que je n'envoies pas !!! Mais comment peut-on fixer ça?

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Au lieu de mettre des liens <a>, mets des boutons submit ou image, comme ça, les données seront disponibles et tu pourras les réafficher.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Bon je t'en ai fait un plus serieux ( mais bon, ya encore mieux c'est certain ) ,

    donc :
    ne passer que par POST ( et pas mélanger les types )
    faire le traitement des variables
    afficher le formulaire



    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <style> 
    a{ 
    text-decoration:none; 
    } 
    </style> 
    </head>
     
    <body>
     
    <?php
     
     
    $question = isset($_POST['question']) ? $_POST['question'] : '';
    $reponse = isset($_POST['reponse']) ? $_POST['reponse'] : Array(0=>"");
    $del = count($reponse)-1 !=0 ? count($reponse)-1 : false ;
    $add = count($reponse)+1 ;
    if(isset($_POST['add'])){
    $reponse[]="";	
    }
    if(isset($_POST['del'])){
     
    if($del!==false)
    	{
    		unset($reponse[count($reponse)-1]);
    	}
    }
     
    ?>
     
     
     
    <form action="Acceuil.php" method="POST">
     
    <table>
    <tr>
    <td>Enter your question:</td>
    <td><input type="text" name="question" value="<?php echo  $question  ?>" /></td>
    <td></td>
    <td></td>
    </tr>
    <?php 
    for($i=0;$i<count($reponse);$i++){ ?> 
    <tr>
    <td>Choice <?php echo $i; ?>:</td>
    <td><input type="text" name="reponse[<?php echo $i?>]" value="<?php echo $reponse[$i] ?>" /></td>
    </tr>
    <?php } ?>
    <!--- BOUTON ---->
    <tr>
    <td><input type='submit' name='add' value="Add choice"  ></td>
    <?php
    if($del!==false){
    ?><td><input type='submit'  name='del' value="Del choice"  ></td><?php
    }
    ?>
    <td><input type="submit" value="Finish" /></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <!--- FIN BOUTON ---->
    </table>
    </form>
    </body>
    </html>
    Conception / Dev

  13. #13
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    Merci beaucoup ascito pour votre réponse...

    En effet, j'aurais voulu faire comme le qcm développé par facebook, la ou on peux créer une question avec des choix (cette rubrique se trouve sur la page principale du site juste en dessous de la barre de recherche des personnes):

    Je voulais savoir comment, à votre avis, il est développé? par le biais de quel langage? et finalement avez une vous une idée ou on peux trouver un tuto qui permet de réaliser une telle application?

  14. #14
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    Salut stocker les questions et les réponses dans une table d'une base de données (ou ailleurs tu me diras: fichier texte, fichier CSV, fichier XML).
    Quand l'utilisateur ajoute sa question -> INSERT INTO.

    Quel langage? Celui qui est sur leur serveur. Python, PHP, Perl, C, Java etc... (Celui que tu préfères)

  15. #15
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    D'accord, mais je cherche plutôt la technologie... c'est à dire lorsque j'ajoute ou bien je supprime une question, j'ai pas l'air vraiment de manipuler un "<form>" ... vous voyez de quoi je parle ... j'ai demandé à une autre personne, elle m'a dit peut être qu'ils ont développé ça avec le JQuery ...

    Je voulais savoir votre avis! Merci

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Je pense que facebook à son propre framwork, cela m'étonne qu'ils utilisent jquery... La techno utilisé c'est du

    javascipt pour la création des options, et effectivement de l'ajax pour l’auto complétion, validations , etc... ( envoi / réception des données en json )
    Conception / Dev

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoyer formulaire en cliquant sur un lien de menu
    Par sousan_24 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 15/09/2008, 11h52
  2. [AJAX] Garder les valeurs des champ d'un formulaire en mémoire
    Par joss91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/04/2008, 09h56
  3. soumettre un formulaire en cliquant sur un lien
    Par psychoBob dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/06/2006, 12h36
  4. Réponses: 66
    Dernier message: 12/06/2006, 09h06
  5. Réponses: 1
    Dernier message: 04/06/2006, 00h35

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