

Programmation (163 topics, 2371 messages) Dernier message par Mephisto, le 28/05 à 07:34:17 |
|
| Mephisto inscrit le 24/05/2004 |
j'aimerais savoir comment changer le href d'un lien grâce à un script et y ajouter un paramètre tiré d'un formulaire mais je n'y arrive pas, je ne sais pas non plus comment ça se passe au niveau des ' et des ". |
|
| Babaorum adjoint
L'homme n'est qu'une machine inscrit le 01/03/2003 |
Bonjour |
|
| Mephisto inscrit le 24/05/2004 |
Salut, je viens juste de trouver une réponse à d'autres pb de programation, je n'ai pas pu rester connecté. Est ce que tu connaîtrais la reponse à ma question ?
En fait j'essaie de passer une variable en paramètre sur un lien de la façon suivante : <a name="lien" href="toto.htm?Vnom=variable> cette variable est la selection d'un menu déroulant de formulaire. Je pense qu'il faut faire une concaténation de l'adresse url et de la variable grâce à un script. je pensais que ça donnerait ça: <a href="" name="lien" onclick="lien.href='toto.htm?vnom='+form.menu.options[form.menu.selectedindex ].value;"> mais ça marche pas.(et je peux pas faire ça dans le formulaire car j'ai plusieurs choix de liens qui devront utiliser la valeur présente dans le menu déroulant) Help me please Message modéré le 24/05 à 16:15:57 par Mephisto. |
|
| Babaorum adjoint
L'homme n'est qu'une machine inscrit le 01/03/2003 |
Salut Mephisto
Il faut prendre le problème un peu différemment: puisque tu veux vraiment faire une action de lien, c.a.d. charger une nouvelle page à une URL donnée (et paramétrée par la valeur choisie dans la liste déroulante), tu vas directement changer la propriété location de l'objet window. Le navigateur va charger un nouveau document à l'URL donnée. Voici le script , je pense que tu vas comprendre très vite
<form name="f"> <select name="menu"> <option value=""></option> <option value="valeur">valeur</option> </select> </form> <a name="lien" href="#" onclick="window.location='toto.htm?vnom='+document.f.menu.options[document.f.menu.selectedIndex].val ue"> lien </a> Message modéré le 24/05 à 22:19:43 par Babaorum. |
|
| Mephisto inscrit le 24/05/2004 |
Merci beaucoup. En fait je ne connaissait pas l'objet window, alors j'étais assez mal parti.Je suis nouveau dans ce domaine et il me manque certaines bases et malheureusement je n'ai pas souvent accès à l'internet civil.
J'ai essayé de faire comme ça mais l'aperçu de frontpage me dit que document.f.menu.options[...].value n'est pas un objet. Lorsque je lance ma page toto et que je click sur le lien il me met erreur de page, il veut ouvrir toto#. Message modéré le 26/05 à 11:30:53 par Mephisto. |
|
| Babaorum adjoint
L'homme n'est qu'une machine inscrit le 01/03/2003 |
Ha... normalement le gestionnaire d'événement onclick s'exécute même si le lien n'est pas valide en tant que propriété du paramètre HREF... Il est prépondérant en quelque sorte.
Et je suis certain de mon code, je l'ai testé tel quel avant de le copier-coller ici. Tu peux essayer de l'utiliser "manuellement" en éditant directement la source de ton document web avec un éditeur de texte tout simple (le Bloc-Notes par exemple). Sinon tu ne te débrouilles déjà pas trop mal, c agréable de voir quelqu'un débarquer autrement que les mains vides et la bouche pleine de "donnez-moi le code pour...". Essaie et tiens-nous au courant.
Si ça ne fonctionne pas, on peut essayer de passer par une fonction: - entre <HEAD> et </HEAD>: <script type="text/javascript language="JavaScript"> <!-- function go() { window.location = "toto.htm?vnom=" + document.f.menu.options[document.f.menu.selectedIndex].value; } //-
</script> - et entre <BODY> et </BODY>: <a href="#" onclick="go()">lien</a> Message modéré le 25/05 à 20:30:50 par Babaorum. |
|
| Mephisto inscrit le 24/05/2004 |
J'avais déjà essayé avec le bloc note, j'ai réessayé , sur 2 ordis, j'ai essayé de passer par une fonction, rien à faire, il veut pas fonctionner (j'ai même essayé de l'intimidé en cognant un peu). Je me suis dit que ça pouvait peut être venir du fichier asp auquel se réfère mon lien, j'ai donc essayé sur un .htm mais non.Le problème reste le même, il essaie d'ouvrir toto.htm#
En fait cette variable est destinée à être inséré dans un fichier txt à la suite des autres variables, et ainsi pouvant être récupérée par requête SQL pour être mise dans une base de données.Je suppose qu'il devait y avoir plus simple pour mettre ce qui est sélectionné dans le menu déroulant dans une base mais je n'arrivais pas à paramétrer. Je me suis dit que vu que frontpage permet de définir l'action du formulaire commeune inscription dans un fichier .txt, si j'arrivais à faire executer l'action dans un évènement onunload de <body> alors je n'aurais plus besoin de faire passer ma variable grâce au lien. J'ai donc essayé: <body onunload="document.f.submit();"> mais ça veut toujours pas. Je commence à être à cours d'idées. Je suis désolé de soliciter une fois de plus ton aide mais ça fait 4 jours que je bloque sur cette maudite page et de plus je suis le seul à avoir une petite formation en prog au bureau(pascal,sql,delphi).
Message modéré le 27/05 à 12:41:54 par Mephisto. |
|
| Mephisto inscrit le 24/05/2004 |
Je viens de voir que :
- window.location était prioritaire sur le href sur win xp, mais sur win NT on dirait que non ; est-ce la différence entre iexplore 5 et le 6 ? - avec href="#" onclick="window.location='toto.htm'" le onclick fonctionne, mais pas avec le "window.location = 'toto.htm?vnom=' + document.f.menu.options[document.f.menu.selectedIndex].value" (sur win XP). donc cela viendrait bien du document.f.menu.options[...].value n'est pas un objet que precise Frontpage à l'aperçu. Mais why ? |
|
| Mephisto "Plus les choses changent et plus elles restent les mêmes" L.A. 2013 inscrit le 24/05/2004 |
Ca y est , J'ai trouvé. Je faisais une erreur c.. !
En fait je mettais selectedindex au lieu de selectedIndex. Je ne savais pas que la case était importante en javascript. Désolé de t'avoir ennuyé pour ça. A+ et merci pour tout. |
|
| Babaorum adjoint
L'homme n'est qu'une machine inscrit le 01/03/2003 |
Haha tu vois je n'avais pas vu non plus
Ben c rien ça m'arrive tout le temps à moi aussi et des fois je galère pendant des heures à tout relire instruction par instruction, à suivre les sous-routines, les threads etc... c l'erreur qui prend le plus de temps à corriger car très longue à trouver souvent! et ça ça n'épargne personne, d'où l'intérêt de connaître son code (c.a.d. le faire soi-même). Bon ça marche c cool. Sinon, si tu avais toujours eu ce problème de tentative d'ouverture de "toto.htm#..." à cause du HREF, je t'aurais proposé de ruser avec une fonction qui se trouve dans la plupart de mes scripts, la fontion nul(), dont le code est le suivant: function nul() { } Là tu peux gruger le navigateur en collant ça dans les dent de ton HREF qui ne t'embêteras plus et se contentera d'exécuter la fonction (et rien ne se passera forcément): href="javascript:nul();" |
|
| Mephisto "Plus les choses changent et plus elles restent les mêmes" L.A. 2013 inscrit le 24/05/2004 |
Merci, cette fonction va me servir car mon code ne marche pas pour WIN NT, il eesaie toujours d'ouvrir toto.htm# alors que sur 2000 et xp il fonctionne bien.
A charge de revanche. |
|
Vous ne pouvez pas ajouter de messages.
Forum gratuit proposé par
v 2.7 alpha
-
Un service
-
Page générée en 0,023 secondes le 21/08 à 03:52:38.