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

Struts 1 Java Discussion :

lien à l'intérieur d'un html:select


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Par défaut lien à l'intérieur d'un html:select
    Bonsoir
    En fait j'ai une liste qui m'affiche des trucs et je veux que lorsque je clique sur la première ligne de cette ligne je passe à un autre lien, j'ai essayé de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     <html:select property="select" multiple="true" style="width:150">
      <html:option value="Créer Nouveau"><html:link href="../action.do?hidden=new">Créer nouveau</html:link></html:option>
      <html:options collection="vec" name="maForm" property="id" labelProperty="nom"/>
      </html:select>
    Mais ça marche pas,
    j'ai essayé aussi àa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     <html:select property="select" multiple="true" style="width:150">
      <html:option value="<html:link href="../action.do?hidden=new"/>">Créer nouveau</html:option>
      <html:options collection="vec" name="maForm" property="id" labelProperty="nom"/>
      </html:select>
    ça marce pas non plus ,
    Svp si quelqu'un sait comment faire j'en ai besoin
    Merci d'avance
    bonsoir

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu pourrais (accessoirement) utiliser l'évènement onclick sur l'option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <select multiple="true" ...>
       <option onclick="javascript:loadAction1()" ...>Créer nouveau</option>
       ...
    </select>
     
    <script>
    function loadAction1()
    {
       window.location = "<%=request.getContextPath()%>/leProjet/leNomD'Action?avec_les_parametres";
    }
    </script>
    Là, c'est en html simple, mais tu peux le faire via le tag <html:option> également.

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Tu peux pas imbriquer untag dans un autre.
    Ecrire un lien dans une liste, ca n'a pas de sens, c'est detourner l'utilisation d'un composant pour autre chose.

    Le mieux est de faire comme dit O Butterlin, C'est a dire declencher un evenement sur ton option voire ta liste.
    Et le traiter ensuite via javascript.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Par défaut
    Bonjour,
    Merci pr vos réponses
    en fait ce que j'ai fait c pr dépanner car c'est urgent
    Bon je vais essayer la solution de OButterlin
    Merci infiniment
    bonne journée

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Par défaut
    Salut
    dsl pr le retard.
    Je viens d'essayer la solution de OButterlin
    mais il me donne cette erreur : L'attribut onclick est incorrect pour le tag option d'après la TLD indiquée
    à ce que je vois je peux pas faire des évenements sur <html:option>
    voyez vous comment je peux le faire?
    Merci d'avance

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Par défaut
    C'est bon j'ai utilisé option au lieu de html:option et ça marche
    Mnt le problème que j'ai c'est que : qd je clique sur nouveau qui est dans la liste ,un popup s'ouvre , ce dernier me permet d'ajouter dans la base de données des trucs de même nature que ceux sont sur la liste, et la liste ne s'actualise pas !
    voilà ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <option value="nouveau"  onclick="javascript:loadAction1();submit();">nouveau</option>
    mais ce submit s'exécute avant le submit qui est sur le popup et qui permet de changer dans la base de données

    Je sais pas trop comment résoudre ce problème
    SVP si vs avez une idée Merci d'avance de la partager.
    bonne soirée et merci encore

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu peux préciser un peu, je ne suis pas sûr d'avoir tout compris...
    Tu as ta page1 avec ta liste de sélection, tu cliques sur "nouveau", tu ouvres une page2 qui te permet d'ajouter des valeurs pour la liste de sélection de page1 (je suppose que tu écris en DB).
    Mais : comment reviens-tu sur page1 ? par le bouton "back" du navigateur ou par ton application ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Tu peux préciser un peu, je ne suis pas sûr d'avoir tout compris...
    Tu as ta page1 avec ta liste de sélection, tu cliques sur "nouveau", tu ouvres une page2 qui te permet d'ajouter des valeurs pour la liste de sélection de page1 (je suppose que tu écris en DB).
    Mais : comment reviens-tu sur page1 ? par le bouton "back" du navigateur ou par ton application ?

    A+
    Salut
    Quand je clique sur nouveau, une page2 s'ouvre comme popup pas à la place de la page1. et donc qd je submit dans le popup ( il se ferme ) et un élement s'ajoute dans une table de base de données , je voudrais que ma liste de la page1 s'actualise puisque elle se rempli à partir de la même table de base de données.
    Merci d'avance pr votre aide

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Là, c'est un peu plus compliqué dans la mesure où il n'y a pas de lien fort entre les 2 fenêtres.
    Tu peux éventuellement demander un rechargement de la page par la fenêtre popup via opener (qui pointe sur la fenêtre d'appel) mais rien ne garantit la bonne synchronisation des opérations.
    Tu peux également sauvegarder l'id de la fenêtre popup dans la page d'appel et boucler (via setInterval) jusqu'à fermeture de la popup avant de demander le rechargement.
    Tu as également la possibilité de faire de l'ajax pour le chargement de la liste, mais ça ne sera pas plus simple (bien au contraire)...
    Enfin, tu as la possibilité de ne pas ouvrir une nouvelle fenêtre et de recharger la précédente au retour de ton actuelle popup, simple, mais ce n'est peut-être pas ce que tu veux...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Là, c'est un peu plus compliqué dans la mesure où il n'y a pas de lien fort entre les 2 fenêtres.
    Tu peux éventuellement demander un rechargement de la page par la fenêtre popup via opener (qui pointe sur la fenêtre d'appel) mais rien ne garantit la bonne synchronisation des opérations.
    Tu peux également sauvegarder l'id de la fenêtre popup dans la page d'appel et boucler (via setInterval) jusqu'à fermeture de la popup avant de demander le rechargement.
    Tu as également la possibilité de faire de l'ajax pour le chargement de la liste, mais ça ne sera pas plus simple (bien au contraire)...
    Enfin, tu as la possibilité de ne pas ouvrir une nouvelle fenêtre et de recharger la précédente au retour de ton actuelle popup, simple, mais ce n'est peut-être pas ce que tu veux...
    Bonsoir ,
    Tout d'abord merci bcp pour votre réponse.
    en fait j'ai utilisé la fonction javascript suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script>
    function timed(){
             submit();
            setTimeout("timed()",10);   
        }
    </script>
    que j'appelle au niveau de mon jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script>
    timed();
    </script>
    mais ça ne marche pas la récursivité , ça ne s'exécute que la première fois où j'appelle mon jsp, après elle s'arrête.
    est ce que vs voyez un problème que je n'arrive pas à voir ?
    Merci d'avance pr votre aide

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Oui, elle ne doit passer qu'une seule fois dans la mesure où, lorsque la page est soumise (ce qui est le cas je suppose avec submit()), ça interrompt le processus.
    Il faudrait faire quelque chose comme ça :
    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
     
    <script>
    ...
    var winPopup = null;
    var timer = null;
    ...
    function openPopup()
    {
       winPopup = window.open("...", "nomFenetre", "options");
       timer = setInterval("checkPopup()", 100);
    }
     
    function checkPopup()
    {
       try
       {
          if ( winPopup.closed )
          {
             clearInterval(timer);
             submit();
          }
       }
       catch (e)
       {
          alert(e.message);
       }
    }
    ...
    </script>
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Oui, elle ne doit passer qu'une seule fois dans la mesure où, lorsque la page est soumise (ce qui est le cas je suppose avec submit()), ça interrompt le processus.
    Il faudrait faire quelque chose comme ça :
    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
     
    <script>
    ...
    var winPopup = null;
    var timer = null;
    ...
    function openPopup()
    {
       winPopup = window.open("...", "nomFenetre", "options");
       timer = setInterval("checkPopup()", 100);
    }
     
    function checkPopup()
    {
       try
       {
          if ( winPopup.closed )
          {
             clearInterval(timer);
             submit();
          }
       }
       catch (e)
       {
          alert(e.message);
       }
    }
    ...
    </script>
    A+

    Merci énormément pr votre aide, j'ai eu ce que je voulais

    j'ai utilisé votre code en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    submit() dans checkPopup()
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     document.forms[0].submit()
    car avec submit tt cours j'avais l'erreur : submit is not defined.
    Je vous remercie pour votre aide
    Bonne soirée

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

Discussions similaires

  1. [HTML][Select]désactiver une option sous IE ?
    Par tiPouick dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 05/11/2004, 12h13
  2. [html:select][html:options] pb de submit
    Par wazup dans le forum Struts 1
    Réponses: 5
    Dernier message: 03/05/2004, 18h54
  3. html:select struts
    Par JulienT dans le forum Struts 1
    Réponses: 3
    Dernier message: 14/04/2004, 11h40
  4. [Struts] preselection ds un html:select ???
    Par FreshVic dans le forum Struts 1
    Réponses: 5
    Dernier message: 10/02/2004, 11h13
  5. Liens Hypertexte simple comme en HTML ?!
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 00h25

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