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

jQuery Discussion :

Augmentation du prix selon la durée qui passe


Sujet :

jQuery

  1. #21
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Depuis tout à l'heure que je cherche je ne trouve pas de solution exacte pour mon problème, pourtant le code que tu as mis est le meme que mon code.

    ça ne pourrai pas etre un problème de type ? car dans ma bd j'ai mis à heure debut et heure fin le type "time" est c'est la premiere fois que je travail avec cela je ne sais pas si ça peut etre ça le problème.

    Si quelqu'un peut bien m'éclairer l'idée svp ?

    la seule chose que j'ai ajouté c'est que dans mon back-end j'ai convertis c'est deux valeur car les inputs acceptent que des string donc j'ai mis cela :

    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
     
    String nom_local=request.getParameter("nom_localhidden");
     
     
     
            String numeroplace=request.getParameter("numeroplacehidden");
            String prixplace=request.getParameter("prixplacehidden");
            String tailleplace=request.getParameter("tailleplacehidden");
            String cinlocataire=request.getParameter("cinlocataire");
            String heure_debut=request.getParameter("heure_debut");
            String heure_fin=request.getParameter("heure_fin");
            String action=request.getParameter("action");
            DateFormat dateformat=new SimpleDateFormat("HH:mm");
            Connection c=Cnx.getcnx();
            try{
              if("reserver".equals(action)){
                PreparedStatement st=c.prepareStatement("insert into reservation values (null,?,?,?,?,?,?,?)");
                st.setString(1, nom_local);
                st.setString(2, numeroplace);
                st.setString(3, prixplace);
                st.setString(4, tailleplace);
                st.setString(5, cinlocataire);
                st.setTime(6, new java.sql.Time(dateformat.parse(heure_debut).getTime()));
                st.setTime(7, new java.sql.Time(dateformat.parse(heure_fin).getTime()) );
                int res=st.executeUpdate();
    focalise toi sur les
    st.setTime(6, new java.sql.Time(dateformat.parse(heure_debut).getTime()));
    st.setTime(7, new java.sql.Time(dateformat.parse(heure_fin).getTime()) );
    et pour la bd ils sont bien de type time voici une image démonstrative :

    Nom : Capture.PNG
Affichages : 157
Taille : 9,8 Ko

    je sais que je sors du sujet jquery mais c'est juste pour éclairer les choses et si ça peut aider a trouvé une solution, et je m'excuse encore une fois.

  2. #22
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    euh wait je vois que j'avais pas mis un tout petit code que je vois qui est présent dans le lien que tu m'as donnée c'est celui-là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('form').submit(function(e) {
      e.preventDefault();
    });
    quand je l'ai ajouté, il a pu récupérer la valeur des 2 times mais le probléme c'est qu'il ne me ferme pas les précédent modal et qu'il affiche comme valeur NaN.

    Voici une image démonstrative de ce qui se passe :

    Nom : dev 4.PNG
Affichages : 152
Taille : 90,9 Ko

    Comme tu vois les 2 anciens modals ne se ferme plus et les valeurs son bien récupérer mais le calcule n'ai pas réussi il m'affiche Nan Dhs

  3. #23
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Mais attend ! depuis le début de la discussion tu ne nous as rien dit concernant l'insertion dans la base de donnée et je ne vois aucun rapport entre la base et le problème.

    Est ce que tu enregistres les données dans la base lors d'un clic sur les boutons des modales ?

    Le code $('form').submit() est là pour empêcher la soumission du formulaire, et empêche la page de se recharger.

    Bon c'est vrai que j'ai copié collé ton code html vite fait sans faire attention ... et c'est pour ça que je n'ai pas vu :
    • La présence de deux form avec le même id et un attribut action <form id="f" action="Acceuil_locataire">
    • Des <button> dans les <form> qui rechargent la page lorsqu'on clic dessus.
    • L'utilisation de cette variable dans le #myModal
      Code html : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      <!-- Modal body -->
            <div class="modal-body">
              ${msg}
            </div>
    • Mais le plus pire c'est :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
       
      String msg=(String) request.getAttribute("msg");
        if(msg!=null && !msg.equals("") ){
                %>  
                <script>
                   $(document).ready(function (){
                      $("#myModal").modal('toggle');
                   });  
              </script>
       
              <% } %>

    Ces points indiquent clairement que tu recharges la page à chaque fois, c'est pour ça que les valeurs des inputs dans les fenêtres modales sont vides.

    Tu essaies d'ajouter tout ça, seulement pour afficher ou masquer le modal selon la valeur d'une variable serveur msg au chargement de page, mais non l'idée est mauvaise.

    Il faut utiliser jQuery.ajax si tu veux transmettre et recevoir des données depuis un langage serveur et sans rechargement de page.

  4. #24
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    oui quand je clic sur reserver les données saisies sont enregistrés dans la base de donnée spécialement dans la table "reservation"

    Pour ce que tu m'as dis sur le modal c'est la seule technique que je connais qui permet de charger le modal avec le msg que je veux.

    D’après ce que j'ai compris le problème viens de là non ? mais je ne connais pas comment faire pour résoudre mon problème, peut tu m'aider stp ?

  5. #25
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Oui, le problème est bien là, c'est le rechargement de page.

    Normalement quand la fenêtre modale #reservation est remplit, tu envois les valeurs de ses inputs vers un fichier serveur externe qui traite les données et renverra un message de confirmation, et à ce moment là tu affiches la deuxième fenêtre modale.

    L'insertion dans la base de donnée est la dernière chose que tu dois faire, car il est bien possible qu'un client quitte le site avant de payer sa réservation.

    Commence d'abord par :
    • Lire la documentation de jQuery.ajax.
    • Faire un exercice simple pour voir si t'as bien compris ajax.


    Si t'es bloqué, n'hésite pas de demander des explications.

  6. #26
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Merci beaucoup pour l'aide frère,

    Mais le problème c'est que je dois livrer mon projet dans 4 jours et je ne sais pas si j'aurais le temps de résoudre ce problème + réaliser mon petit rapport.

    C'est sur que je vais lire la documentation c'est très utile tu as bien raison mais la j'ai une contrainte de temps j'ai peur que le temps me dépasse ( il me reste ce petit problème à résoudre + masquer les places quand elles seront réserver ) du coup je ne sais pas si il me reste beaucoup de temps j'espère que tu me comprends.

    Et merci beaucoup pour l'aide que tu me fournis

  7. #27
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Pour l'idée que tu m'as donné sur "l'insertion dans la bd est la derniére chose à faire" tu as bien raison j'avais pas penser à ça avant, merci bcp !

  8. #28
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Ok, apparemment tu es pressé et d'habitude je ne fais pas le travail des autres, mais pour toi c'est un cas particulier.

    Déjà ton langage serveur est c# n'est ce pas? moi je code avec php et ça fait bien longtemps que je n'ai pas touché a c#.

  9. #29
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Merci beaucoup, je veux juste que tu m'aides à bien comprendre je suis encore qu'un étudiant et j'ai la soif d'apprendre et de réaliser des projets...

    Non c'est pas c# c'est java-ee.

    Après que tu m'as dis qu'il ne faut pas inséré dans la bd j'ai commencer par enlever le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String msg=(String) request.getAttribute("msg");
      if(msg!=null && !msg.equals("") ){
              %>  
              <script>
                 $(document).ready(function (){
                    $("#myModal").modal('toggle');
                 });  
            </script>
    et le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div class="modal-body">
            ${msg}
          </div>
    Car ils ne servent plus à rien, maintenant quand je clic sur le bouton réserver il me redérige directement vers le modal de paiement voici ma new jsp si besoin :

    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
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
     
    <%@page import="controller.Cnx"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@page import="java.sql.*"%>
    <%@page import="java.util.Map"%>
     
    <!DOCTYPE html>
    <%
     
    Connection c=Cnx.getcnx();
    Statement st=c.createStatement();
    ResultSet re=st.executeQuery("select * from place");
    Statement st2=c.createStatement();
    ResultSet re2=st2.executeQuery("select * from local");
    %>
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Interface locataire</title>
        <meta name="description" content="Sufee Admin - HTML5 Admin Template">
        <meta name="viewport" content="width=device-width, initial-scale=1">
     
        <link rel="apple-touch-icon" href="apple-icon.png">
        <link rel="shortcut icon" href="favicon.ico">
     
        <link rel="stylesheet" href="vendors/bootstrap/dist/css/bootstrap.min.css">
        <link rel="stylesheet" href="vendors/font-awesome/css/font-awesome.min.css">
        <link rel="stylesheet" href="vendors/themify-icons/css/themify-icons.css">
        <link rel="stylesheet" href="vendors/flag-icon-css/css/flag-icon.min.css">
        <link rel="stylesheet" href="vendors/selectFX/css/cs-skin-elastic.css">
        <link rel="stylesheet" href="vendors/jqvmap/dist/jqvmap.min.css">
     
     
        <link rel="stylesheet" href="assets/css/style.css">
        <link rel="stylesheet" href="css/Css_acceuil_locataire.css">
        <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
        <script src="https://kit.fontawesome.com/e3fd0d5f24.js" crossorigin="anonymous"></script>
     
     
        </head>
        <body>
     
     
     
            <aside id="left-panel" class="left-panel">
            <nav class="navbar navbar-expand-sm navbar-default" style="flex-flow:column wrap;">
     
                <div class="navbar-header">
     
                    <a class="navbar-brand" href="#">Gestion parkings</a>
                    <a class="navbar-brand hidden" href="./"><img src="images/logo2.png" alt="Logo"></a>
                </div>
     
                <div id="main-menu" class="main-menu collapse navbar-collapse">
                    <ul class="nav navbar-nav">
     
     
                        <li class="nav-item ">
                            <a href="#" class="nav-link"  aria-haspopup="true" aria-expanded="false" style="margin-right: 80px;"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 10px;" selected></i>Réservation</a>
     
                        </li>
                        <li class="nav-item ">
                            <a href="#" class="nav-link"  aria-haspopup="true" aria-expanded="false" style="margin-right: 80px;"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 10px;" selected></i>Liste réservation</a>
     
                        </li>
     
     
     
                    </ul>
                </div>
            </nav>
        </aside>
     
     
     
        <nav class="navbar" style="height:70px;" id='nav-proprietaire'>
            <ul class="nav navbar-nav">
                <li class="nav-item ">
                            <a href="Page_de_cnx" class="nav-link"  aria-haspopup="true" aria-expanded="false" style="padding-left: 1430px; text-transform: uppercase"> <i class="fas fa-exclamation-circle" style="margin-right: 20px;"></i>Déconnection</a>
     
                        </li>
            </ul>
        </nav>
     
     
            <label id="label1">Liste des places disponibles avec leurs emplacements :</label>
     
            <table class="table table-hover" style="margin-top: 20px;" id="table1">
      <thead>
        <tr class="table-active">
          <th scope="col">Nom local</th>
          <th scope="col">Numéro place</th>
          <th scope="col">Prix par heure</th>
          <th scope="col">Taille</th>
          <th scope="col">Action</th>
     
     
        </tr>
         </thead>
         <%while(re.next()){%> 
          <tbody id="corps">
         <tr>
     
                <td scope="row"><%=re.getObject(2)%></td>
                <td><%=re.getObject(3)%></td>
                <td><%=re.getObject(4)%></td>
                <td><%=re.getObject(5)%></td>
                <td><a href="#" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#reservation" name="reservermodal" ><i class="fas fa-plus" style="margin-right: 10px;"></i>Réserver</a></td>
         </tr>
     
     
          <%}%>
     
     
     
     
     
     
     
      </tbody>
     
    </table>
       <div class="modal" id="reservation">
      <div class="modal-dialog">
        <div class="modal-content">
     
          <!-- Modal Header -->
          <div class="modal-header">
            <h4 class="modal-title">Information</h4>
            <button type="button" class="close" data-dismiss="modal">&times;</button>
          </div>
     
          <!-- Modal body -->
          <div class="modal-body">
              <form method="POST" id="f" action="Acceuil_locataire">
                <div class="form-group">
                    <label class='labelproprietaire'>Nom du local approprié à la place :</label>
                    <input type="hidden" class="form-control" id="nom_localhidden"  name="nom_localhidden">
                    <input type="text" class="form-control" id="nom_local"  name="nom_local" disabled>
     
     
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Numéro place :</label>
                    <input type="hidden" class="form-control" id="numeroplacehidden"  name="numeroplacehidden">
                    <input type="number" class="form-control" id="numeroplace"  name="numeroplace" disabled>
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Prix par heure:</label>
                    <input type="hidden" class="form-control" id="prixplacehidden"  name="prixplacehidden">
                    <input type="text" class="form-control" id="prixplace" placeholder="Entrer le prix de la place" name="prixplace" disabled>
     
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Taille de la place :</label>
                    <input type="hidden" class="form-control" id="tailleplacehidden"  name="tailleplacehidden">
                    <input type="text" class="form-control" id="tailleplace" placeholder="Entrer la taille de la place" name="tailleplace" disabled>
     
                </div>
     
                <div class="form-group">
                    <label class='labelproprietaire'>Votre Cin :</label>
                    <input type="text" class="form-control" id="Cinlocataire" placeholder="Entrer votre cin" name="cinlocataire" required>
     
                </div>
     
                <div class="form-group">
                    <label class='labelproprietaire'>Heure début de la réservation :</label>
                    <input type="time" class="form-control" id="heure_debut" placeholder="Entrer l'heure de début" name="heure_debut" required>
     
                </div>
     
                <div class="form-group">
                    <label class='labelproprietaire'>Heure fin de la réservation :</label>
                    <input type="time" class="form-control" id="heure_fin" placeholder="Entrer l'heure de fin" name="heure_fin" required>
     
                </div>
     
     
     
     
     
     
     
     
          <!-- Modal footer -->
          <div class="modal-footer">
     
             <div id='divbtnaddplace'>      
                 <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#paiement" id='btnreserver' style='vertical-align: 0; margin-right: 240px;' name='action' value='reserver'>Reserver</button>
     
     
               </div>
     
            <button type="button" class="btn btn-danger btn-lg" data-dismiss="modal">Fermer</button>
          </div>
          </form>
          </div>
        </div>
      </div>
    </div>
     
     
     
          <div class="modal" id="paiement">
      <div class="modal-dialog">
        <div class="modal-content">
     
          <!-- Modal Header -->
          <div class="modal-header">
            <h4 class="modal-title">Information</h4>
            <button type="button" class="close" data-dismiss="modal">&times;</button>
          </div>
     
          <!-- Modal body -->
          <div class="modal-body">
            <form method="POST" id="f" action="Acceuil_locataire">
                <div class="form-group">
                    <label class='labelproprietaire'>Votre Cin :</label>
     
                    <input type="text" class="form-control" id="Cin"  name="cin">
     
     
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Type paiement :</label>
     
                       <div class="row">
                          <div class="col-md-6 select-outline">
     
                            <select class="mdb-select md-form md-outline colorful-select dropdown-primary btn-lg" style="width: 465px;" name="typepaiement">
                              <option value="" disabled selected>Choose your option</option>
                              <option value="Paypal">Paypal</option>
                              <option value="Carte bancaire">Carte bancaire</option>
                              <option value="Payonner">Payonner</option>
                            </select>
     
     
                          </div>
                        </div>
                </div>
                <div class="form-group">
                    <label class='labelproprietaire'>Prix</label>
     
                    <input type="text" class="form-control" id="prix"  name="prix">
     
                </div>
     
     
     
          <!-- Modal footer -->
          <div class="modal-footer">
              <button type="submit" class="btn btn-primary btn-lg" data-dismiss="modal" name="action" value="payer" style="margin-right: 250px;">Payer</button>
            <button type="button" class="btn btn-danger btn-lg" data-dismiss="modal">Fermer</button>
     
          </div>
          </form>
     
          </div>
        </div>
      </div>
    </div>
     
     
            <script src="vendors/jquery/dist/jquery.min.js"></script>
        <script src="vendors/popper.js/dist/umd/popper.min.js"></script>
        <script src="vendors/bootstrap/dist/js/bootstrap.min.js"></script>
        <script src="assets/js/main.js"></script>
        <script src="js/moment.js"></script>
     
        <script src="vendors/chart.js/dist/Chart.bundle.min.js"></script>
        <script src="assets/js/dashboard.js"></script>
        <script src="assets/js/widgets.js"></script>
        <script src="vendors/jqvmap/dist/jquery.vmap.min.js"></script>
        <script src="vendors/jqvmap/examples/js/jquery.vmap.sampledata.js"></script>
        <script src="vendors/jqvmap/dist/maps/jquery.vmap.world.js"></script>
     
     
        <script>
     
            function afficher(e){
       e.preventDefault();//pour inhiber le lien, parce que le bouton .btn est un <a href="#">
       var tr=$(this).closest('tr');
     
        $('#f .custom-select')
            .html('<option value="'+tr.find('td:eq(0)').text()+'">'+tr.find('td:eq(0)').text()+'</option>');
     
     
        $('#nom_local').val(tr.find('td:eq(0)').text());
     
        $('#numeroplace').val(tr.find('td:eq(1)').text());
     
        $('#prixplace').val(tr.find('td:eq(2)').text());
     
        $('#tailleplace').val(tr.find('td:eq(3)').text());
     
     
     
         $('#nom_localhidden').val(tr.find('td:eq(0)').text());
     
        $('#numeroplacehidden').val(tr.find('td:eq(1)').text());
     
        $('#prixplacehidden').val(tr.find('td:eq(2)').text());
     
        $('#tailleplacehidden').val(tr.find('td:eq(3)').text());
    }
    /* Quand le document est prêt */
    $(document).ready(function(){
         $('#table1').on('click','#corps .btn',afficher);
    });   
     
     
     
        </script>
     
        <script>
     
     
     
     
    $('#paiement').on('shown.bs.modal', function () {//quand #myModal s'affiche
        var heure_debut = $("#heure_debut").val(),
        heure_fin = $("#heure_fin").val(),
        prix=$('#prixplace').val(),
        diff,
        total;
        console.log('Ouverture du modal...');//vérifies si tu vois cette ligne dans la console quand le modal #myModal est affiché
        if (moment(heure_debut, "HH:mm").isValid() && moment(heure_fin, "HH:mm").isValid()) {
                diff = moment.utc(moment(heure_fin, 'HH:mm').diff(moment(heure_debut, 'HH:mm')));
                total=prix * ( moment(diff,'HH:mm').hour()+ ( moment(diff,'HH:mm').minutes()/60 ) );
     
                $("#prix").val(total.toFixed(2)+" Dh");
     console.log('Ouverture du modal, debut :'+heure_debut,", fin :"+heure_fin);
     
                console.log("différence :", diff.format('HH:mm'),", hour :",moment(diff,'HH:mm').hour(),
                   ", minutes :",moment(diff,'HH:mm').minutes(), 
                  ", total :",total.toFixed(2));
       } else 
            console.log("heure invalide !");
        console.log('Ouverture du modal, debut :'+heure_debut,", fin :"+heure_fin);
     
    });
     
    $('form').submit(function(e) {
      e.preventDefault();
    });
     
        </script>
        </body>
    </html>

    et voici ma servlet si tu as besoin d'elle elle aussi :

    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
     
     
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String nom_local=request.getParameter("nom_localhidden");
     
     
     
            String numeroplace=request.getParameter("numeroplacehidden");
            String prixplace=request.getParameter("prixplacehidden");
            String tailleplace=request.getParameter("tailleplacehidden");
            String cinlocataire=request.getParameter("cinlocataire");
            String heure_debut=request.getParameter("heure_debut");
            String heure_fin=request.getParameter("heure_fin");
            String action=request.getParameter("action");
            DateFormat dateformat=new SimpleDateFormat("HH:mm");
            Connection c=Cnx.getcnx();
            try{
              if("reserver".equals(action)){
                PreparedStatement st=c.prepareStatement("insert into reservation values (null,?,?,?,?,?,?,?)");
                st.setString(1, nom_local);
                st.setString(2, numeroplace);
                st.setString(3, prixplace);
                st.setString(4, tailleplace);
                st.setString(5, cinlocataire);
                st.setTime(6, new java.sql.Time(dateformat.parse(heure_debut).getTime()));
                st.setTime(7, new java.sql.Time(dateformat.parse(heure_fin).getTime()) );
                int res=st.executeUpdate(); 
                 if(res>0){
                   request.setAttribute("msg","Réservation ajouter avec succés !");
     
               }
     
               else {
                   request.setAttribute("msg","Réservation non ajouter !");
               }
                }
     
     
     
            }
            catch(Exception ex){
                ex.printStackTrace();
            }
            getServletContext().getRequestDispatcher("/WEB-INF/Acceuil_locataire.jsp").forward(request, response);
        }
    Je sais que je m'éloigne du sujet jquery je tiens a m'excusé encore une fois, pour le stockage dans un serveur et l'ajout sur la bd aprés le paiement je vais esseyé de chercher comment faire, j'ai pas encore une idée de comment faire cela avec du code mais je vais esseyé de trouver la solution.

    Je ne veux pas que je te dérenge avec cela déjç si tu m'aide juste a régler le problème de l'affiche du prix dans le modal " paiement " c'est énorme et je tiens a te remercié d'avance !

  10. #30
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Le principe d'ajax est très simple, on met l'url vers le fichier serveur et la méthode d'envoie soit post ou get + le type de donnée (dans ton cas il est préférable d'utiliser json, et bien-sur ton fichier serveur doit renvoyer une réponse JSON valide sinon une erreur ajax s'affiche...), puis finalement les données qu'on veut transmettre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        $.ajax({
           url:"chemin vers le fichier serveur",
           method:"post",
           dataType:"json",
           data:{"variable1":"valeur variable 1","variable2":"valeur de variable 2"....}
       })
       .done(function(data){//succès d'ajax
         console.log("requête reçue avec succès :"+data);
         //c'est ici que tu dois mettre l'instruction pour afficher la deuxième modale
       })
       .fail(function(erreur){//erreur d'ajax
           alert("Une erreur est survenue :"+erreur.responseText);
        });

  11. #31
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par abdennour bouaicha Voir le message
    tu vas faire la relation triangulaire
    Tu t'es trompé de forum... non ?

    Tu voulais certainement dire : "appliquer la règle de trois"...

  12. #32
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    enfin j'ai pu résoudre mon problème ! en faite le code de toufik il marche très bien je l'ai testé sur un autre projet est ça a marché du coup je savais qu'il y avait un problème au niveau de mon projet principal, et après quelques testes et tentatives j'ai pu trouvé l'erreur.

    En faite c'est une erreur que j'avais fais quand je développais la parti "propriétaire" lorsque j'ajoutais une place la colonne "prix" je l'avais déclaré de type string juste pour ajouter le "DHS" j'avais pas penser que ça me poserai un problème après.
    Du coup puis-quel est de type string lors du calcul du total c'est normal qu'il me donne "NaN" car il ne peux pas faire de calcul avec un type string.

    La solution était que je rends la colonne prix de type number et dans le tableau je la concatène avec le "DHS" et j'ai enlevé les DHS qu'il y avait dans la bd pour qu'il reste juste le prix en nombre.

    C'est avec cette manipulation que j'ai pu résoudre mon erreur et que le total c'est calculé avec succés !, merci beaucoup à toute les personnes qui m'ont aidé !

  13. #33
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    C'est une Bonne nouvelle si tu as résolu le problème, la mauvaise c'est qu'ils restent des trucs à corriger dans le code comme le id="f" pour les form et aussi la boucle while qui affiche le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%while(re.next()){%> 
          <tbody id="corps">
         <tr> ...</tr>
          <%}%>
    </tbody>
    On voit clairement qu'un tbody id="corps" est ajouté au document à chaque tour de la boucle, il faut le mettre avant le while.

    Le code jquery doit être deplacé dans $(document).ready.

  14. #34
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    je viens de corriger cela merci beaucoup pour les remarques, mais je vois que maintenant mon form ne submit plus dans ma servlet pour que la réservation s'ajoute lors du paiement mais bon ce n'est pas un forum java je vais essaye de résoudre le problème xd

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/06/2013, 11h21
  2. Un input qui passe de type text à type password ?
    Par Michaël dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/06/2005, 11h33
  3. menu qui passe au dessus du texte
    Par peck dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/12/2004, 15h03
  4. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08

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