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

Servlets/JSP Java Discussion :

servlet jsp check


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut servlet jsp check
    j'ai un problème je veux quand je choisis dans une zone de défilement une référence de bon de commande le référence de Bon de Livraison se donne automatiquement avec tous les informations de Bon de Livraison le problème que j'ai maintenant c'est que je n'arrive pas à sélectionner les références de Bon de Commande;voici le code de la page check

    <%@ include file="/WEB-INF/inc/top_header.jsp"%>

    <head>
    <script type="text/javascript">
    <!--
    function client(e){
    var url = "commande?op=check&id="+e.options[e.selectedIndex].value;
    document.location.href = url;

    }
    //-->
    </script>
    </head>
    <body bgcolor="#8FCF3C">
    <div id="page"><%@ include file="/WEB-INF/inc/menu.jsp"%>
    <div id="content">
    <%@ include file="/WEB-INF/inc/header.jsp"%>
    <div id="main">
    <h1>Bon de Livraison</h1>


    <form action="<%= reqUrl %>/commande?" method="post">
    <input type="hidden" name="op" value="check"/>
    <p>
    <label for="id">bon de commande</label>
    <select name="commande_id" onchange="commande(this)">
    <option value=""></option>
    <c:forEach var="commande" items="${commandeClient}" varStatus="status">
    <option <c:if test="${commande.id == param.id}">selected</c:if> value="${commande.id}">${commande.reference}</option>
    </c:forEach>
    </select>

    </p>
    </form>
    </div>
    <c:if test="${commande!= null}">

    </c:if>
    </div>
    </div>

    <script type="text/javascript">
    $(document).ready(function() {
    $("#liste_produits").tablesorter();
    });
    </script>
    </body>
    <%@ include file="/WEB-INF/inc/footer.jsp"%>
    la servlet :

    if(action.equals("check")) {

    Query q = sessionDb.createQuery("from CommandeClient C");
    List<CommandeClient> commandes = q.list();
    request.setAttribute("commandes", commandes);

    Integer id = null;
    try {
    id = Integer.parseInt(request.getParameter("id"));
    }
    catch (NumberFormatException e) {
    // TODO: handle exception
    }


    if(id != null) {
    q = sessionDb.createQuery("from CommandeClient C where C.id =" + id);
    CommandeClient commandeClient = (CommandeClient)q.uniqueResult() ;
    request.setAttribute("commandeClient", commandeClient);

    }
    gotoPage("/jsp/livraisons/check.jsp", request, response);
    merci pour vos aide.

  2. #2
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Bonjour

    il semble que l'id ne soit pas récupérer dans la servlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getParameter("id");
    mais ça semble normal puisque qu'il n'y a rien qui s'apparente à un champs id dans le formulaire envoyé par la JSP
    Il y a un command_id éventuellement à exploiter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="commande_id" onchange="commande(this)" id="commande_id">
    et donc dans la servlet


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getParameter("coomande_id");

    juste pour info est-ce que vous avez résolu vos problèmes des deux autres posts ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    merci pour les 2 problèmes j'ai pas trouvé une solution

    maintenant je peux récupérer la référence du bon commande mais le problème que j'ai maintenant c'est que quand je choisis une référence du Bon de Commande la référence du Bon de Livraison s'affiche automatiquement vous avez une idée ? merci infiniment

    la référence du Bon de livraison est écrite de cette manière (le numéroBLannée) et pour le code de la jsp check

    <%@ include file="/WEB-INF/inc/top_header.jsp"%>

    <head>
    <script type="text/javascript">
    <!--
    function client(e){
    var url = "commande?op=check&id="+e.options[e.selectedIndex].value;
    document.location.href = url;

    }
    //-->
    </script>
    </head>
    <body bgcolor="#8FCF3C">
    <div id="page"><%@ include file="/WEB-INF/inc/menu.jsp"%>
    <div id="content">
    <%@ include file="/WEB-INF/inc/header.jsp"%>
    <div id="main">
    <h1>Bon de Livraison</h1>


    <form action="<%= reqUrl %>/commande?" method="post">
    <input type="hidden" name="op" value="check"/>
    <p>
    <label for="id">bon de commande</label>
    <select name="commande_id" onchange="commande(this)">
    <option value=""></option>
    <c:forEach var="commande" items="${commandes}" varStatus="status">
    <option <c:if test="${commande.id == param.id}">selected</c:if> value="${commande.id}">${commande.reference}</option>
    </c:forEach>
    </select>

    </p>
    </form>
    </div>
    <c:if test="${commande!= null}">
    <table id="liste_commandes" class="tablesorter" cellspacing="1">
    <thead>
    <tr>
    <th>Nom</th>
    <th>Prénom</th>
    <th>Adresse</th>
    <th>Téléphone</th>
    <th>Clinique</th>
    <th>Chirurgien</th>
    <th>Beneficiare</th>
    <th>Date Operation</th>
    <th>Date Accident</th>
    <th>date de création</th>
    <th>date de mise à jour</th>
    <th>Opération
    </th>
    </tr>
    </thead>


    <tr>
    <td>${client.nom}</td>
    <td>${client.prenom}</td>
    <td>${client.adresse}</td>
    <td>${client.telephone}</td>
    <td>${client.raison_sociale}</td>
    <td>${client.nom_mededin}</td>
    <td>${client.beneficiare}</td>
    <td>${client.date_operation}</td>
    <td>${client.date_accident}</td>
    <td>${client.date_creation}</td>
    <td>${client.date_mise_jour}</td>
    <td><a href="clients?op=delete&id=${client.id}" onclick="if (window.confirm('Voulez-vous vraiment supprimer ce patient?'))
    {location.href='index.jsp';return true;} else {return false;}">supprimer</a>
    <a href="clients?op=edit&id=${client.id}">modifier</a></td>

    </tr>

    </table>
    </c:if>
    </div>
    </div>

    <script type="text/javascript">
    $(document).ready(function() {
    $("#liste_produits").tablesorter();
    });
    </script>
    </body>
    <%@ include file="/WEB-INF/inc/footer.jsp"%>

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    Bonjour pour ma page jsp j'ai ajouté un button Etablir voici le code de la jsp

    <%@ include file="/WEB-INF/inc/top_header.jsp"%>

    <head>
    <script type="text/javascript">
    <!--
    function client(e){
    var url = "commande?op=check&id="+e.options[e.selectedIndex].value;
    document.location.href = url;

    }
    //-->
    </script>
    </head>
    <body bgcolor="#8FCF3C">
    <div id="page"><%@ include file="/WEB-INF/inc/menu.jsp"%>
    <div id="content">
    <%@ include file="/WEB-INF/inc/header.jsp"%>
    <div id="main">
    <h1>Bon de Livraison</h1>


    <form action="<%= reqUrl %>/commande?" method="post">
    <input type="hidden" name="op" value="check"/>
    <p>
    <label for="id">bon de commande</label>
    <select name="commande_id" onchange="commande(this)">
    <option value=""></option>
    <c:forEach var="commande" items="${commandes}" varStatus="status">
    <option <c:if test="${commande.id == param.id}">selected</c:if> value="${commande.id}">${commande.reference}</option>
    </c:forEach>
    </select>

    </p>
    </form>
    </div>

    <p>
    <input type="submit" name="submit" value="Etablir"></input>
    </p>

    </div>
    </div>

    <script type="text/javascript">
    $(document).ready(function() {
    $("#liste_produits").tablesorter();
    });
    </script>
    </body>
    <%@ include file="/WEB-INF/inc/footer.jsp"%>
    et pour la servlet j'ai ajouté ce code dans doGet

    else if(action.equals("Etablir")) {

    Integer id = null;
    try {
    id = Integer.parseInt(request.getParameter("id"));
    }
    catch (NumberFormatException e) {
    // TODO: handle exception
    }


    if(id != null) {
    Query q = sessionDb.createQuery("insert into livraison (reference,commandeClient,produitCommandeClient) select reference,C.id,pc.id from CommandeClient C,ProduitCommandeClient pc where C.id=pc.commandeClient and C.id =" + id);

    q.executeUpdate();

    }
    gotoPage("/jsp/livraisons/check.jsp", request, response);

    }

    merci pour vos aides

  5. #5
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Du coup je ne sais pas où vous en êtes . Vous avez obtenu le résultat voulu ?

    autre question je ne vois pas de fonction javascript commande dans le onchange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="commande_id" onchange="commande(this)">
    Autre remarque même si ça ne concerne pas directement votre problème (que j'ai déjà faite,c'est juste un standard à respecter ): je vous conseille de déplacer les appels à la base de données que vous avez mis dans la servlet , dans une classe à part.
    Avec eclipse et le refactor vous pouvez vous en sortir pour faire ça.
    ça vous aidera grandement pour la maintenance de l'application

    Supposons que vous ayez deux servlets ServletA et ServletB et que dans les deux servlets vous ayez besoin de faire la même requête à la base de données sur la table commande => vous allez dupliquer le code ! vous allez réécrire deux fois la même chose.
    Alors que si vous créer une classe CommandeDAO et que vous mettez dans une méthode le contenu (l'appel à la table Commande)que vous avez mis dans les deux servlets,
    1) le code sera plus clair
    2) si vous avez besoin de corriger la requête vous ne le ferez que dans la classe CommandeDAO et non pas dans les deux servlets
    3)vous respecterez les standards (MVC etc)

    le temps que vous allez "perdre" à mettre en oeuvre ça, sera du temps de gagner quand il faudra corriger des erreurs, faire des évolutions etc ...

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    Merci infiniment Isma pour vos conseils

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. [servlet][JSP]forwarder dans une frame
    Par deldin dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/06/2004, 18h03
  3. [servlet][JSP] renvoi d'informations
    Par deldin dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 22/06/2004, 13h44
  4. [servlet][jsp] Creer une page de login
    Par Beuj dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/03/2004, 17h55
  5. [Servlet][JSP] valeur ajoutée
    Par yolepro dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/03/2004, 17h30

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