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 :

script en même temps qu'un post de formulaire


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut script en même temps qu'un post de formulaire
    Bonjour,
    j'ai besoin d'exécuter un script en même temps que le bouton submit de mon formulaire est exécuter. Mais je ne sais pas comment faire.
    Est-ce que quelqu'un peut m'aider.

    J'arrive à exécuter le script à partir d'un lien, mais j'aimerais qu'il se fasse à l'aide du bouton submit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:cacher('identification')">test</a>
    Merci d'avance

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="" onsubmit="alert('On soumet !'); return false;">
    Si le onsubmit retourne true alors le formulaire est envoyé
    Si le onsubmit retourne false alors le formulaire n'est pas envoyé

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    je n'arrive pas à faire fonctionner ton astuce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    code initial de mon formulaire :
      <form name="form1" method="post" action="main.php?mode=lister_annonce">
     
    j'ai essayé ça :
      <form name="form1" method="post" action="main.php?mode=lister_annonce" onsubmit="alert(javascript:cacher('validation')); return false;">
    merci de ton coup de main

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="form1" method="post" action="main.php?mode=lister_annonce" onsubmit="cacher('validation'); return true;">
    que fait la fonction cacher() ?

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    elle est senser masquer/afficher un <div>...
    mais ça ne marche pas, lorsque je clique sur le bouton submit, mon div disparait et réapparaît tout de suite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="validation" style="{visibility:hidden;}">
    <table border=0 align="center" width="95%"  bordercolor="#000000">
    <tr><td class="td1" align="right"><input type="submit" value="valider"></td></tr>
    </table>
    </div>
    de plus il n'est pas cacher à l'ouverture de la page comme il devrait l'être ...

    voilà le code de la fonction( que quelqu'un m'a donné sur ce forum d'aileur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    function cacher(id) {
    var elem = document.getElementById(id);
    if ( elem.style.visibility == "hidden" ) {
    elem.style.visibility="visible";
    }
    else {
    elem.style.visibility="hidden";
    }
    }
    </script>
    merci

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Essaie ca dans un coin :
    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
    <html>
      <head>
    <script type="text/javascript">
    		function showBlock(idName){ 
    			if(document.getElementById) {//NN6,Mozilla,IE5?
    				document.getElementById(idName).style.display = "block";; 
    			}
    			else if(document.all) {      //IE4?
    				document.all(idName).style.display = "block";; 
    			}
    			else if(document.layers) {   //NN4?
    				document.layers[idName].display = "block";; 
    			}
    		}
     
    		function hideBlock(idName){ 
    			if(document.getElementById) {//NN6,Mozilla,IE5?
    				document.getElementById(idName).style.display = "none";; 
    			}
    			else if(document.all) {      //IE4?
    				document.all(idName).style.display = "none";; 
    			}
    			else if(document.layers) {   //NN4?
    				document.layers[idName].display = "none";; 
    			}
    		}
     
    function go(form, things_to_hide) {
       for(i in things_to_hide) {
          hideBlock(things_to_hide[i]);
       }
       return false;
    }
     
    </script>
      </head>
      <body>
        <form action="http://www.google.fr/" onsubmit="return go(this, new Array('toto', 'titi'));">
           <div id="toto">Clique et je disparais !</div>
           <div id="titi">Moi aussi je disparais !</div>
           <div id="tutu">Moi, je reste !</div>
           <input type="submit" />
        </form>
      </body>
    </html>

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    ok, je te remercie, ça marche impeccable, à un détail près...
    Lors du chargement de ma page, j'aimerais que le div ne soit pas visible et qu'il apparaisse seulement à partir du moment où l'on clique sur le bouton "validation" ...

    comment faire ?
    merci

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="display:none">

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    ça c'est bon ça marche maintenant, mais le soucis maintenant, c'est que le formulaire n'est pas posté lorsque j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <form name="form1" method="post" action="main.php?mode=lister_annonce" onsubmit="return go(this, new Array('validation'));">
    alors qu'il l'est lorsque j'utilise celui là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <form name="form1" method="post" action="main.php?mode=lister_annonce" >
    Merci de ton aide

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Alors return true dans la fonction go

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <form name="form1" method="post" action="main.php?mode=lister_annonce" onsubmit="return true ;">
    Ce code fait bien marcher le formulaire, mais lorsque je clique sur le bouton (submit), le div n'apparaît pas ...

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    mais non !
    grrr, il faut vraiment tout macher !
    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
    <html>
      <head>
    <script type="text/javascript">
          function showBlock(idName){
             if(document.getElementById) {//NN6,Mozilla,IE5?
                document.getElementById(idName).style.display = "block";;
             }
             else if(document.all) {      //IE4?
                document.all(idName).style.display = "block";;
             }
             else if(document.layers) {   //NN4?
                document.layers[idName].display = "block";;
             }
          }
     
          function hideBlock(idName){
             if(document.getElementById) {//NN6,Mozilla,IE5?
                document.getElementById(idName).style.display = "none";;
             }
             else if(document.all) {      //IE4?
                document.all(idName).style.display = "none";;
             }
             else if(document.layers) {   //NN4?
                document.layers[idName].display = "none";;
             }
          }
     
    function go(form, things_to_hide) {
       for(i in things_to_hide) {
          hideBlock(things_to_hide[i]);
       }
       return true;
    }
     
    </script>
      </head>
      <body>
        <form action="http://www.google.fr/" onsubmit="return go(this, new Array('toto', 'titi'));">
           <div id="toto">Clique et je disparais !</div>
           <div id="titi">Moi aussi je disparais !</div>
           <div id="tutu">Moi, je reste !</div>
           <input type="submit" />
        </form>
      </body>
    </html>

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    j'ai fait tout ce que tu as noté mais le div ne réapparaît pas...
    je ne comprend pas

    as-tu une idée ???
    dsl de te déranger...

  14. #14
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Au temps pour moi je me mélange les pinceaux
    tu veux faire apparaitre ? utilise showBlock à la place de hideBlock dans la fonction go

  15. #15
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    oui c'est ça, lorsque je clique sur le bouton, je veux faire apparaître..
    j'essaye tout à l'heure et je te tiens au courant

    encore merci et DSL ...

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut

    je suis désolé, mais ça ne marche pas...
    lorsque je clique sur le bouton, le formulaire est bien exécuté, mais mon div disparait et réapparaît tout de suite ... ce que je te dit est valable lorsque la fonction renvoie true, car lorsqu'elle renvoie false, le div réapparaît bien comme je le souhaite, mais à ce moment là, c'est le formulaire qui n'est pas exécuté ...

    je ne vois pas trop...
    ce n'est pas à cause du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="validation" style="display:none">
    ??

  17. #17
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Montre nous le code complet de ta page

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 45
    Points
    45
    Par défaut
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    <head>
    <script type="text/javascript">
          function showBlock(idName){
             if(document.getElementById) {//NN6,Mozilla,IE5?
                document.getElementById(idName).style.display = "block";;
             }
             else if(document.all) {      //IE4?
                document.all(idName).style.display = "block";;
             }
             else if(document.layers) {   //NN4?
                document.layers[idName].display = "block";;
             }
          }
     
          function hideBlock(idName){
             if(document.getElementById) {//NN6,Mozilla,IE5?
                document.getElementById(idName).style.display = "none";;
             }
             else if(document.all) {      //IE4?
                document.all(idName).style.display = "none";;
             }
             else if(document.layers) {   //NN4?
                document.layers[idName].display = "none";;
             }
          }
     
    function go(form, things_to_hide) {
       for(i in things_to_hide) {
          showBlock(things_to_hide[i]);
       }
       return true;
    }
     
    </script> 
     
     
    </head>
     
     
    <body>
      <form name="form1" method="post" action="main.php?mode=lister_annonce"  onsubmit="return go(this, new Array('validation'));">
        <span class="Style2"> </span>
        <table width="575" border="0">
          <tr>
            <td width="160"><input type="checkbox" name="box5" value="checkbox">
              <span class="Style2">Base de donn&eacute;e</span></td>
            <td width="229"><span class="Style2">
              <input type="checkbox" name="box6" value="checkbox">
    Architecture Wan / Commutation Lan</span></td>
            <td width="172"><span class="Style2">
              <input type="checkbox" name="box7" value="checkbox">
    D&eacute;ploiement &amp; int&eacute;gration</span></td>
          </tr>
          <tr>
            <td><span class="Style2">
              <input type="checkbox" name="box8" value="checkbox">
    Serveurs Web / Firewalls</span></td>
            <td><span class="Style2">
              <input type="checkbox" name="box9" value="checkbox">
    Formation</span></td>
            <td><span class="Style2">
              <input type="checkbox" name="box10" value="checkbox">
    Serveurs / Clusters / SAN</span></td>
          </tr>
          <tr>
            <td><span class="Style2">
              <input type="checkbox" name="box11" value="checkbox">
    Groupware / messageries</span></td>
            <td><span class="Style2">
            </span></td>
            <td><span class="Style2">
              <input type="submit" name="Submit" value="Ok">
            </span></td>
          </tr>
        </table>
        <span class="Style2">    </span>  
    </form>
      <br>
     
     
     
     
     
    <form action="main.php?mode=suppr_a" method="post">  
    <?
    						if (isset($_POST['box5']))
    						{
    						$checkbox5 = 5;}
    						else
    						{$checkbox5 = 0;}
     
    						if (isset($_POST['box6']))
    						{
    						$checkbox6 = 6;}
    						else
    						{$checkbox6 = 0;}
     
    						if (isset($_POST['box7']))
    						{
    						$checkbox7 = 7;}
    						else
    						{$checkbox7 =0;}						
     
     
    						if (isset($_POST['box8']))
    						{
    						$checkbox8 = 8;}
    						else
    						{$checkbox8 =0;}						
     
    						if (isset($_POST['box9']))
    						{
    						$checkbox9 = 9;}
    						else
    						{$checkbox9 =0;}						
     
    						if (isset($_POST['box10']))
    						{
    						$checkbox10 = 10;}
    						else
    						{$checkbox10 =0;}						
     
     
    						if (isset($_POST['box11']))
    						{
    						$checkbox11 = 11;}
    						else
    						{$checkbox11 =0;}						
     
                            $sql="SELECT *,DATE_FORMAT(date,'%d-%m-%y à %T') as date FROM ".$table." WHERE categorie_id=".$checkbox5." OR categorie_id=".$checkbox6." OR categorie_id=".$checkbox7." OR categorie_id=".$checkbox8." OR categorie_id=".$checkbox9." OR categorie_id=".$checkbox10." OR categorie_id=".$checkbox11." ";
    						//$sql="SELECT *,DATE_FORMAT(date,'%d-%m-%y à %T') as date FROM ".$table."";
                            $p = mysql_query($sql);
                            if(mysql_num_rows($p) == 0)
                                    {
                                            echo "<table class='td1' border='0' width='95%' align='center'><tr><td align='center'><font class='text'>Aucune annonce trouvée pour les catégories selectionnées.</font></tr></td></table>";
                                    }
     
     
                            while($row=mysql_fetch_assoc($p)){
     
    ?>
    <table border="0" align="center" width="95%">
    <tr>
    <td><font class="titre">Id annonce</font></td>
    <td><font class="titre">Titre</font></td>
    <td><font class="titre">Date</font></td>
    <td><font class="titre">Supprimer</font></td>
    <td><font class="titre">&Eacute;diter</font></td>
    </tr>
    <tr>
    <td class="td2"><font class=text><?= $row['news_id']; ?></font></td>
    <td class="td1"><font class=text><?= $row['titre']; ?></font></td>
    <td class="td2"><font class=text><?= $row['date']; ?></font></td>
    <td class="td1"><input type="checkbox" name="annonce[]" value="<?= $row['news_id'] ?>"></td>
    <td class="td1"><input type="checkbox" name="edit[]" value="<?= $row['news_id'] ?>"></td>
    </tr>
    </table>
    <br>
    <?
    }
    ?>
     
    <div id="validation" style="display:none">
    <table border=0 align="center" width="95%"  bordercolor="#000000">
    <tr><td class="td1" align="right"><input type="submit" value="valider"></td></tr>
    </table>
    </div>
    </form>
     
    </body>
    voilà merci beaucoup
    j'espère que c'est pas trop le bazard

  19. #19
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Récapitule nous ton besoin parceque ma tete n'y comprend plus rien...
    Ce que je comprend :
    Tu affiches une page avec deux formulaires :
    1 de filtre + 1 d'affichage.
    il y a un bouton submit pour chacun des formulaires
    Jusque là je pense que j'ai bon. Mais c'est après que ca se corse pour moi. Que veux-tu faire et pourquoi ?

  20. #20
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Je dirai que c'est tout à fait normal

    Tu clique sur ton submit, ca cache ta zone de texte, puis sa submit ton formulaire et ensuite ca refresh ta page, du coup ta zone reprend sa valeur par défaut qui est visible. Il faudrais je pense un traitement sur le onload de ton body.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2015, 08h24
  2. comment gérer en même temps input post et uri pour une recherche et pagination ?
    Par razily dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 22/03/2012, 14h24
  3. exécuter plusieurs scripts en même temps
    Par TgZ-le_joker_fou dans le forum Langage
    Réponses: 5
    Dernier message: 24/12/2011, 10h33
  4. bd utilisée sur plusieurs postes en même temps
    Par Gwendo69 dans le forum Sécurité
    Réponses: 3
    Dernier message: 16/03/2009, 16h16
  5. envoi GET et POST en même temps
    Par alienn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/12/2007, 16h18

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