Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
862 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JSCRIPT] Ouvrir une fenetre avec un formulaire pour revenir

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JSCRIPT] Ouvrir une fenetre avec un formulaire pour revenir

n°1087965
IvanleFou
Posté le 18-05-2005 à 15:11:32  profilanswer
 

Bonjour,
 
J'ai un petit problème de javascript:
 
J'ai une fenetre "mère" avec une liste de messages et à coté de chacun d'eux un bouton pour lire le message. Lorsque je clique ce bouton j'ouvre un pop-up avec le contenu du message. Jusque la ca va :)
 
Le pop-up contient en plus du contenu du message un bouton pour supprimer ce message. Lorsque je clic sur ce bouton je voudrais que le pop-up se ferme et que la suppression du message se fasse dans la fenetre "mère" et que ca m'affiche le petit message qui va bien suite au traitement de la requete.
 
C'est la que je cale, je ne sais pas comment faire. A priori il faut pointer vers la fenetre "mere" dans le champ TARGET de mon formulaire du pop-up. Mais je ne sais pas quoi y mettre car je connais pas son petit nom :??: Le nom de la fenetre du pop-up je le connais car c moi qui la crée.
 
Le formulaire pour ouvrir le pop-up ressemble a ca:

Code :
  1. <SCRIPT LANGUAGE="JavaScript">
  2. <!--
  3. function ViewMsg(NbForm)
  4. {
  5.   window.open('','MsgWin','fullscreen=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=400,height=500');
  6. }
  7. -->
  8. </script>
  9. <form name=ReadMsg method=post action=message.php target=MsgWin>
  10.   <input type=hidden name=action value=Read_Msg>
  11.   <input type=hidden name=ID_Msg value="<?=$Res_Msg['id_msg']?>">
  12.   <td><input class=bouton type=submit name=Submit value=Lire OnClick=ViewMsg()></td>
  13. <form>


 
J'espère que vous pourrez me donner un coup de main, merci. :hello:

mood
Publicité
Posté le 18-05-2005 à 15:11:32  profilanswer
 

n°1087989
robbyone
Non pas !
Posté le 18-05-2005 à 15:22:44  profilanswer
 

Il existe un terme JS pour désigner la page appelante sans la nommer et c'est "opener"
 
Tu l'utilise à la place de "window"
Plus de détails avec "Google"

n°1088000
IvanleFou
Posté le 18-05-2005 à 15:28:56  profilanswer
 

Merci :jap:  
 
Suis parti en quête d'info :)

n°1088203
IvanleFou
Posté le 18-05-2005 à 17:17:36  profilanswer
 

Voila je suis arrivé au résultat souhaité, merci pour ton aide robbyone. :jap:  
Je laisse le code au cas ou ca puisse interesser quelqu'un d'autre.
 
Le code du pop-up:

Code :
  1. SCRIPT LANGUAGE=\"JavaScript\">
  2. <!--
  3. function SubForm()
  4. {
  5.   if(window.opener && !window.opener.closed)
  6.   {
  7.     top.opener.top.name = 'mainWindow';
  8.     document.MyForm.target = top.opener.name;
  9.     document.MyForm.submit();
  10.     setTimeout('top.close()', 1000);
  11.   }
  12.   return false;
  13. }
  14. // -->
  15. </SCRIPT>
  16. <form name=MyForm method=post action=message.php>
  17.   <input type=hidden name=action value=Del_Msg>
  18.   <input type=hidden name=ID_Msg value="<?=$Res_Msg['id_msg']?>">
  19.   <input type=submit name=Submit value=Supprimer OnClick="javascript: SubForm()">
  20. </form>

n°1096195
Ryujin
Posté le 25-05-2005 à 11:15:14  profilanswer
 

sans vouloir chercher la petite bete, je te précise quand meme que la solution du timeout n'est pas tres recommandée. Sa fiabilité est tres limitée, notamment si pour une quelconque raison tu as des problemes avec le server.  
il y avait surement moyen de faire autrement, peut etre en utilisant la sotution d'une autre "popup" qui se contentera d'effectuer le rafrachissement de ta page mere (window.opener.location.reload()), et de se fermer(self.close()). Mais bon c'est à creuser...

n°1096212
FlorentG
Unité de Masse
Posté le 25-05-2005 à 11:18:48  profilanswer
 

IvanleFou a écrit :

Voila je suis arrivé au résultat souhaité, merci pour ton aide robbyone. :jap:  
Je laisse le code au cas ou ca puisse interesser quelqu'un d'autre.
 
Le code du pop-up:

Code :
  1. SCRIPT LANGUAGE=\"JavaScript\">
  2. <!--
  3. function SubForm()
  4. {
  5.   if(window.opener && !window.opener.closed)
  6.   {
  7.     top.opener.top.name = 'mainWindow';
  8.     document.MyForm.target = top.opener.name;
  9.     document.MyForm.submit();
  10.     setTimeout('top.close()', 1000);
  11.   }
  12.   return false;
  13. }
  14. // -->
  15. </SCRIPT>
  16. <form name=MyForm method=post action=message.php>
  17.   <input type=hidden name=action value=Del_Msg>
  18.   <input type=hidden name=ID_Msg value="<?=$Res_Msg['id_msg']?>">
  19.   <input type=submit name=Submit value=Supprimer OnClick="javascript: SubForm()">
  20. </form>



Et la version valide :

<script type="text/javascript">
 
function SubForm()
{
  if(window.opener && !window.opener.closed)
  {
    top.opener.top.name = 'mainWindow';
    document.getElementById('myForm').target = top.opener.name;
    document.getElementById('myForm').submit();
    setTimeout('top.close()', 1000);
  }
  return false;
}
</script>
<form id="myForm" method="post" action="message.php">
  <div>
    <input type="hidden" name="action" value="Del_Msg" />
    <input type="hidden" name="ID_Msg" value="<?=$Res_Msg['id_msg']?>" />
    <input type="submit" name="Submit" value="Supprimer" onclick="javascript: SubForm()">
  </div>
</form>


:D

n°1096248
IvanleFou
Posté le 25-05-2005 à 11:27:29  profilanswer
 

Mouais je vois pas trop la différence. A la rigeur je veux bien pour le getElementById() mais les guillemets dans le code HTML je les ai bannis. Je vois pas leur utilité a part alourdir la page :o

n°1096278
FlorentG
Unité de Masse
Posté le 25-05-2005 à 11:33:13  profilanswer
 

IvanleFou a écrit :

Mouais je vois pas trop la différence. A la rigeur je veux bien pour le getElementById() mais les guillemets dans le code HTML je les ai bannis. Je vois pas leur utilité a part alourdir la page :o


YOUHOUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
 
[:delarue]
 
[:enzan]
 

Citation :

By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39).


 
C'est obligatoire, et ça peux mener à de graves problèmes :o
 
Genre j'imagine le browser qui tombe là-dessus :

<a href=mapage.php?p=truc&amp;machin=bidule class=pouet bidule truc>


Il risque de péter une belle durite :D

n°1096279
FlorentG
Unité de Masse
Posté le 25-05-2005 à 11:33:33  profilanswer
 

Bref, apprend à coder en HTML :o


Message édité par FlorentG le 25-05-2005 à 11:33:40
n°1096308
IvanleFou
Posté le 25-05-2005 à 11:42:39  profilanswer
 

Bah si t'écris n'importe koi aussi... Je ne m'amuse pas a mettre des trucs comme l'exemple que tu as donné :sarcastic:

mood
Publicité
Posté le 25-05-2005 à 11:42:39  profilanswer
 

n°1096317
FlorentG
Unité de Masse
Posté le 25-05-2005 à 11:45:45  profilanswer
 

Et pourtant... Ce sont des trucs couramment utilisé (l'histoire des plusieurs classes). Bref, l'HTML4 impose de mettre des simple ou double-quote [:spamafote] Si t'en met pas, ben... C'est que t'es un mauvais développeur :D

n°1096341
IvanleFou
Posté le 25-05-2005 à 11:53:16  profilanswer
 

Disons que je les mets qd yen a besoin, sur les champs contenant des espaces, des url des trucs comme ca.
 
Sur une ligne comme ca je vois pas ou est le problème.

Citation :

<input type=hidden name=action value=Del_Msg>


 
Maintenant si ca fait de moi un mauvais développeur tant pis, j'assume. En attendant j'ai gagné quelques octets et c'était le but recherché [:sinclaire]


Message édité par IvanleFou le 25-05-2005 à 11:53:50
n°1096359
FlorentG
Unité de Masse
Posté le 25-05-2005 à 11:57:47  profilanswer
 

Y'a presque rien de gagné : tout serveur web digne du nom gzip les pages. Ensuite, rien ne dit que le navigateur en face reconnaisse les trucs sans quotes. Aussi, c'est beaucoup moins lisible, les éditeurs avec coloration syntaxique vont rien piger, etc... Bref, pleins de désavantages pour même pas 10 octets :(
 
Y'a des règles de syntaxe pour l'HTML, ça sert à être respecté ;) La seule chance que t'ai, c'est que nos browsers sont trop cools sur la syntaxe...

n°1096395
IvanleFou
Posté le 25-05-2005 à 12:07:56  profilanswer
 

Sur un formulaire c'est sur que le gain est tres minime mais pour des tableaux de 5000 ou 10000 lignes ca commence a se faire sentir. A 500ko la page t'es content de gagner 5ko (du coté server).
 
En fait avant je faisais pas attention et j'ai du faire un site hébergé sur une connexion adsl (upload 16ko/s :/) avec un tableau de 1Mo "brut" (entendez par la codé à l'arrache). J'ai donc par la suite cherché tous les moyens possible de l'optimiser pour gagner de la bande passante (CSS, optimisation du HTML... tout y ai passé) et j'ai finis par m'apercevoir que les browsers les plus utilisés s'en foutent des guillements (qd supprimé au endroits adéquates). DOnc maintenant par habitude je ne les mets plus.
 
C'est pas conforme au standard mais de toute manière qui respecte les standards W3C... Chaque browser supporte des fonctions non conforme au spécifications W3C donc bon... la c'est pour la bonne cause :p

n°1096417
gatsusat
Posté le 25-05-2005 à 12:22:19  profilanswer
 

ben tu fais de la pagination, ton tableau avec pagination et comme ca c'est moins crade

n°1096424
IvanleFou
Posté le 25-05-2005 à 12:26:20  profilanswer
 

C'est ce que j'avais fait :jap: mais une vue globale restait indispensable dans certains cas.
 
Vous allez pas me reprocher d'essayer d'optimiser mon code quand même :sarcastic:

n°1096425
plainsofpa​in
Pingouino's lover
Posté le 25-05-2005 à 12:28:30  profilanswer
 

Au lieu de gagner 10 octets par ci par la, fais un code propre.  
 
Et puis, 5 ko, c'est une seconde de plus avec un 56k, autant dire rien. Et puis un HTML de 500 ko c'est pas normal :D


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1096436
IvanleFou
Posté le 25-05-2005 à 12:37:08  profilanswer
 

plainsofpain a écrit :

Au lieu de gagner 10 octets par ci par la, fais un code propre.  
 
Et puis, 5 ko, c'est une seconde de plus avec un 56k, autant dire rien. Et puis un HTML de 500 ko c'est pas normal :D


 
1s pour l'utilisateur mais 1/3 de la BP du server... sachant que le site était accédé presque exclusivement le soir entre 20h et 22h c'est pas négligable.
 
Pour afficher "Hello World!!" ouais. Mais qd t'as 500ko de texte à afficher t'as vite 50ko de mise en page :sweat:

n°1096469
IvanleFou
Posté le 25-05-2005 à 13:08:40  profilanswer
 

Par curiosité j'ai pris un site au hasard (www.google.fr) pour voir si je suis le seul à "coder comme un porc".
 
Extrait du code source:

Citation :

<body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onLoad=sf() topmargin=3 marginheight=3>
<center>
<img src="/intl/fr_fr/images/logo.gif" width=276 height=110 alt="Google">
<br>
<br>


 
Bah nan suis po tout seul. Preuve que ma démarche n'est peut être pas conforme aux spec mais elle n'est pas forcément sans fondement. Ou alors les codeurs de google sont des noobs aussi, dans ce cas je m'incline :jap:  
 
Ce que vous appelez "code dégueulasse" moi j'appelle ca "optimisation" [:aloy]
C'est juste un problème de vocabulaire :D

n°1096475
FlorentG
Unité de Masse
Posté le 25-05-2005 à 13:14:51  profilanswer
 

IvanleFou a écrit :

Ce que vous appelez "code dégueulasse" moi j'appelle ca "optimisation" [:aloy]
C'est juste un problème de vocabulaire :D


C'est absolument pas de l'optimisation, et c'est absolument pas un problème de vocabulaire : c'est du bricolage qui repose à 100% sur le fait que certains navigateurs sont gentils.
 
Ensuite pour ton tableau de 5000 lignes, je voudrais bien voir la gueule du code, ça doit être bien moche... Parce quand on regarde les attributs disponibles pour les éléments <td>, y'en a pas beaucoup :

<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->
 
<!-- Scope is simpler than headers attribute for common tables -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
 
<!-- TH is for headers, TD for data, but for cells acting as both use TD -->
<!ATTLIST (TH|TD)                      -- header or data cell --
  %attrs;                              -- %coreattrs, %i18n, %events --
  abbr        %Text;         #IMPLIED  -- abbreviation for header cell --
  axis        CDATA          #IMPLIED  -- comma-separated list of related headers--
  headers     IDREFS         #IMPLIED  -- list of id's for header cells --
  scope       %Scope;        #IMPLIED  -- scope covered by header cells --
  rowspan     NUMBER         1         -- number of rows spanned by cell --
  colspan     NUMBER         1         -- number of cols spanned by cell --
  %cellhalign;                         -- horizontal alignment in cells --
  %cellvalign;                         -- vertical alignment in cells --
  >


Donc soit chaque <td> de ton truc a un col/rowspan (bof), soit y'a des scope/headers (je pense pas que tu connaisse). Donc je pige pas où est-ce qu'ils sont tous tes attributs :o

n°1096481
plainsofpa​in
Pingouino's lover
Posté le 25-05-2005 à 13:17:47  profilanswer
 

Si elle est sans fondements. Google ne se tient pas aux standards, c'est leur choix, mais c'est pas parce que des grands noms le font que c'est ce qu'il faut faire.
 

IvanleFou a écrit :

1s pour l'utilisateur mais 1/3 de la BP du server


 
Hé bien, 5ko, 1/3 de la bande passante ? Woaw j'avais jamais vu ca ... Le gain est minime, je t'assure, étant donnée que les attributs de style sont en CSS, et que le reste n'est pas tout le temps utilisé.
 
"Ca coute pas plus cher de bien coder !"


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1096564
IvanleFou
Posté le 25-05-2005 à 14:05:39  profilanswer
 

Bon vous avez raison :jap:  :jap:  
 
On va pas discuter 10 ans la dessus surtout que c'est même pas le sujet du topic!

n°1096569
plainsofpa​in
Pingouino's lover
Posté le 25-05-2005 à 14:08:35  profilanswer
 
n°1096604
robbyone
Non pas !
Posté le 25-05-2005 à 14:18:05  profilanswer
 

IvanleFou a écrit :

Bon vous avez raison :jap:  :jap:  
 
On va pas discuter 10 ans la dessus surtout que c'est même pas le sujet du topic!


 :D ... mais je n'en pense pas moins ...  :ange:


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JSCRIPT] Ouvrir une fenetre avec un formulaire pour revenir

 

Sujets relatifs
[Résolu] formulaire asp et base de données access et iisformulaire + popup
Décalage de mes bloc quand je rétrécisma fenetre IEBloquer certains champs d'un formulaire
Probleme de formulaire help svprecup formulaire pour bdd
zones et champs texte dans formulaireProbleme de formulaire
mail () plusieurs champs dans formulaireEnvoyer le resultat d'un formulaire par e-mail impossible
Plus de sujets relatifs à : [JSCRIPT] Ouvrir une fenetre avec un formulaire pour revenir


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR