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

JavaScript Discussion :

recharger le formulaire sur changement d'option


Sujet :

JavaScript

  1. #1
    Membre habitué

    Profil pro
    Pompier
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pompier

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Points : 171
    Points
    171
    Par défaut recharger le formulaire sur changement d'option
    bonjour,
    je me tourne vers vous car je n'y connait absolument rien en javascript.

    Je sais juste que lorsque l'on modifie des données sur le formulaire, le javascript permet de les prendre en compte avant de poster le formulaire.

    Voilà dans mon code,
    en fonction de la valeur du centre (via bouton radio), on recupère une liste de dates.

    je sais qu'il existe onblur ou onchange

    Ce que j'aimerai, c'est lorsque je change de bouton radio, c'est que le formulaire ce recharge. Sans passer par le bouton "ok".

    Merci d'avance

    Code php : 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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
    session_start();
     ?>
     <!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=utf-8" />
    <title>Test option</title>
    </head>
    <?php
    $cookie_matricule=$_SESSION["cookie_matricule"];
    $centre=0;
    //connection à la base de données:
        $cnx = odbc_connect( "DSN_disponibilite", "root", "" ) or die ("Impossible de se connecter à la base de donnée") ;
     
    //Recuperation des valeurs des centres
     $sql = "SELECT * FROM Rcentre where matricule=".$cookie_matricule."";
        $requete = odbc_do($cnx, $sql) ;
    	$result = odbc_fetch_object($requete);
     
    	$centre1=$result->centre1;
    	$centre2=$result->centre2;
    	$ncentre1=$result->ncentre1;
    	$ncentre2=$result->ncentre2;
    	?>
     
     <body>
     
        <?php
    	if (($centre1<>$centre2)AND($centre2<>"")){echo "different" ?>
     
     
    <?php
    if (isset($_POST['ok']))  {$centre=$_POST['radio'];echo $_POST['radio'];} else {$centre=$centre1;echo $centre;}
     
    ?>
    <form id="form1" name="form1" method="post" action="">
    <p>
    <?php
     if ($centre==$centre1){
    	 ?>
     
        <input type="radio" name="radio" id="centre" value="<?php echo $centre1; ?>"  checked="checked"/>
        <label for="centre"><?php echo $ncentre1; ?></label>
        <?php ;}
    	else {
    		 ?>
    		  <input type="radio" name="radio" id="centre" value="<?php echo $centre1; ?>"  />
        <label for="centre"><?php echo $ncentre1; ?></label>
    	<?php ;} ?>
     <br/>
    <?php
     if ($centre==$centre2){
    	 ?>
     
        <input type="radio" name="radio" id="centre2" value="<?php echo $centre2; ?>" checked="checked" />
        <label for="centre2"><?php echo $ncentre2; ?></label>
         <?php ;}
    	else {
    		 ?>
             <input type="radio" name="radio" id="centre2" value="<?php echo $centre2; ?>" />
        <label for="centre2"><?php echo $ncentre2; ?></label>
        <?php ;} ?>
      </p>
        <input type="submit" name="ok" id="ok" value="Envoyer" /> 
    </form>
     <?php ;} else { echo "pareil"; $_POST['radio']=$centre1; //echo $_POST['radio']
     ;} ?>
     
     
      <?php 
       //requête SQL ensemble des disponibilités déclarées (date()>= date déclarée):
        $date=date('d-m-Y');
        $dateEN = substr($date,6,4)."-".substr($date,3,2)."-".substr($date,0,2);
        $sqldecla = "SELECT * FROM dispo_journaliere where matricule=".$cookie_matricule." and jour>=#".$dateEN."# AND centre=".$_POST['radio']." ORDER BY jour" ;
     
       // echo "".$sqldecla."";
        $cnx = odbc_connect( "DSN_disponibilite", "root", "" ) or die ("Impossible de se connecter à la base de donnée") ;
        //exécution de la requête:
        $requetedecla = odbc_do($cnx, $sqldecla) ;
     
          echo $sqldecla;
       echo ("<div align=\"center\">Disponibilité déclarée pour le:");
       while( $resultdecla = odbc_fetch_object( $requetedecla ) )
        { 
    	$date2=$resultdecla->jour;
    	$dateEN1 = date(substr($date2,8,2)."-".substr($date2,5,2)."-".substr($date2,0,4));
     
           ?> <div align="center"><a href="declaration_dispo.php?dateurl=<?php echo $dateEN1; ?>"><?php echo $dateEN1;?></a><br>
       <?php
     
        } ?>
    </body>
    </html>

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onchange="this.form.submit();">
    Sinon, tu peux regarder aussi du coté AJAX si tu ne veux pas recharger la page en entier.

    PS: à lire Les règles incontournables d'utilisation de ce forum.

    A+.

  3. #3
    Membre habitué

    Profil pro
    Pompier
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pompier

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Points : 171
    Points
    171
    Par défaut
    sauf que je fais comment pour garder la valeur de la case radio selectionnée?

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Si tu utilises AJAX (regarde le lien plus haut), c'est pour éviter que toute la page se recharge et de perdre les données saisies du formulaire. Sinon, regarde la faq.

    A+.

  5. #5
    Membre du Club
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Juin 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Juin 2012
    Messages : 35
    Points : 44
    Points
    44
    Par défaut
    pour une optimisation maximum, tu devrais suivre le conseil de andry.aime

    sinon en javascript tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var liste_radio = document.forms["FORM"].elements['ELEMENT'];
    for (var i = 0; i<liste_radio.length; i++) {
    	if (liste_radio[i].checked){
    		var valeur_radio=liste_radio[i].value;
    		var nb_radio = i;
    	}
    }
    pour ensuite faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste_radio[nb_radio].checked;
    je suis pas sur à 100%, je te laisse le loisir de tester
    Mais, je me répète, ce ne sera pas la meilleur solution !

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,

    @autocrator,
    1- si la page se recharge (utilisation de submit()) donc toute les valeurs JS sont perdues (sauf sauvegarde dans un cookie qui nécessite l'autorisation du navigateur et d'autre tâche de plus).
    2- S'il utilise AJAX, il ne perd aucun valeur de son formulaire (sauf que ce qui sera ecrasé suite à la requête AJAX).
    Comment penses-tu utiliser le code que tu proposes?

    A+.

  7. #7
    Membre du Club
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Juin 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Juin 2012
    Messages : 35
    Points : 44
    Points
    44
    Par défaut
    oui tu as raison ...
    j'ai pas pensé comment l'utiliser, je voulais juste le mettre sur une voix.
    mais, le code que j'ai fournis n'est, effectivement, pas bon ...

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/05/2011, 12h56
  2. Réponses: 1
    Dernier message: 15/07/2009, 15h05
  3. date sur changement formulaire
    Par yannnnou dans le forum Requêtes et SQL.
    Réponses: 22
    Dernier message: 06/11/2007, 09h18
  4. Réponses: 2
    Dernier message: 15/03/2007, 15h11
  5. changement de formulaire sur selection dans le select
    Par LeXo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/06/2006, 11h51

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