Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/04/2011, 18h31   #1
Futur Membre du Club
 
Étudiant
Inscription : avril 2010
Messages : 127
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2010
Messages : 127
Points : 15
Points : 15
Par défaut Enlever le resfresh

Bonsoir,

Je suis actuellement en train de concevoir un script de lancer de dés pour du JDR; parti d'un vieux script préexistant, je suis arrivé à ceci (c'est sûrement pas propre mais c'est du WIP):

Code :
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
 
<body>
<!-- Début lanceur -->
<SCRIPT language="JavaScript">
<!--
function rnd(x) {
return Math.floor(Math.random()*x)+1}
function droll(s) {
var pos=0
var posp
var posm
var moins=1
var oldm
var sd
var v=0
var arrs
do {
if(pos>=s.length) return v
posp=s.indexOf("+",pos)
posm=s.indexOf("-",pos)
if(posp<0) posp=9999
if(posm<0) posm=9999
if(posm==posp) {
oldm=moins
sd=s.substr(pos)
pos=s.length+1
} else {
if(posm<posp) {
oldm=moins
moins=-1
sd=s.substr(pos,posm-pos)
pos=posm+1
} else {
oldm=moins
moins=1
sd=s.substr(pos,posp-pos)
pos=posp+1
}
}
arrs=sd.split("d")
if(arrs.length==1) {
v=v+arrs[0]*oldm
} else {
if(arrs[0]=='') arrs[0]="1"
for(var a=0;a<arrs[0];a++) {
v+=rnd(arrs[1])*oldm
}
}
} while(true)
}
function calcul(s,n) {
var txt
var msgWindow=null
var cpt3=0
var nl=0
txt='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'
txt+='<HTML><HEAD><TITLE>Résultat</TITLE></HEAD>'
txt+='<BODY TEXT="#FFFFFF" background="http://warforum-jdr.com/phpBB3/styles/chronicles/theme/images/border_background.jpg" LINK="#FFFF00" VLINK="#FF0000" ALINK="#FF8040">'
txt+='<FORM><CENTER> <p>Comment faire ? Décrivez simplement le types de dés (1d6,1d20,3d8+3,2d6+,1d8-1,...) et indiquez ensuite le nombre de lancers</p>'
txt+='<FONT SIZE=+1>Type de dés &agrave; lancer&nbsp;:&nbsp;<INPUT TYPE="text" NAME="des" VALUE="'+s+'" SIZE=30><BR>'
txt+='Nombre de lancers&nbsp;:&nbsp;<INPUT TYPE="text" SIZE=3 NAME="nbr" VALUE="' + n + '"></CENTER>&nbsp;<BR>'
txt+='<CENTER><INPUT TYPE="button" VALUE="Lancer&nbsp;!" NAME="BtnLan" onClick="window.opener.calcul(des.value,nbr.value)"></CENTER>'
txt+='</FORM><HR WIDTH="100%"><BR>'
txt+='<TABLE ALIGN=CENTER BORDER="1" CELLSPACING="1"  background="http://warforum-jdr.com//phpBB3/sjdr/bgform.png" CELLPADDING="10" WIDTH="90%">'
txt+='<TR ALIGN=CENTER> <TD COLSPAN=10><FONT SIZE=+2 color="#000000">Résultat&nbsp;:</FONT></TD> </TR>'
txt+='<TR ALIGN=CENTER> <TD COLSPAN=10><FONT color="#000000">Dés&nbsp;: ' + s + '&nbsp;&nbsp;</FONT>'
txt+='<TR ALIGN=CENTER> <TD COLSPAN=10><FONT color="#000000">Nombre de lancers&nbsp;: ' + n + '</FONT></TD> </TR>'
txt+='<TR ALIGN=CENTER>'
for(var a=0;a<n;a++) {
if((cpt3/10==Math.floor(cpt3/10))&&(cpt3!=n)&&(cpt3!=0)) {
txt+='</TR><TR ALIGN=CENTER>'
nl++
cpt3=0
}
b=droll(s)
txt+='<TD WIDTH="10%"><FONT color="#000000">' + b + '</FONT></TD>'
cpt3++
}
for(a=cpt3;a<10;a++) {
txt+='<TD WIDTH="10%"><FONT color="#000000">&nbsp;</FONT></TD>'
}
txt+='</TABLE>'
txt+='</FONT><CENTER><IMG SRC="http://warforum-jdr.com/wiki-v2/lib/tpl/monobook/user/logo.png" /><br>&copy;<a href="http://warforum-jdr.com">Warforum JDR</a></CENTER></BODY></HTML>'
msgWindow=window.open("","msgWindow","toolbar=0,menubar=0,locationbar=0,personalbar=0,scrollbars")
msgWindow.innerWidth=600
msgWindow.innerHeight=100
msgWindow.document.close()
msgWindow.document.open()
var dh=msgWindow.outerHeight-msgWindow.innerHeight
msgWindow.innerHeight=580
msgWindow.document.write(txt)
msgWindow.document.close
}
//-->
</SCRIPT>
<span style="font-size:11px;">
<FORM>
 
<CENTER>
  <p title="Décrivez simplement le types de dés (1d6,1d20,3d8+3,2d6+,1d8-1,...) et indiquez ensuite le nombre de lancers" style="text-decoration:underline">Comment faire ?</p>
  <p>Type de dés &agrave; lancer&nbsp;:&nbsp;<INPUT TYPE="text" NAME="des" SIZE=30><BR>
    Nombre de lancers&nbsp;:&nbsp;
    <INPUT TYPE="text" SIZE=3 NAME="nbr">
  </p>
</CENTER>
&nbsp;<BR>
<CENTER><INPUT TYPE="image"  src="http://warforum-jdr.com/phpBB3/sjdr/de2-gris.png" VALUE="Lancer&nbsp;!" NAME="BtnLan" onClick="calcul(des.value,nbr.value)"></CENTER>
 
</FORM>
<!-- Fin lanceur -->
      </small><br/>
 </span>
</body>
</html>
Seulement, j'ai un problème: lorsque, sur la page initiale contenant ce code, on appuie sur le bouton de lancer (qui ouvre une page en pop up avec le lanceur + les résultats), la page initiale est rafraichie, ce qui efface les données dans le lanceur initial, mais aussi les données de possibles autres formulaires sur la page. Je ne vois pas d'où cela vient, hormis que cela fait partie du code du script de base.

Pouvez-vous m'éclairer sur ça ?

Merci d'avance
Medenor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 19h24   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Bonjour,
plusieurs solution pour une même cause le INPUT type="image" qui soumet le formulaire

- la FORM ne te sert à rien, la supprimer
- modifier le INPUT en type="text" mais moins classe, alors mettre une simple image avec un événement onclick tout pareil
- mettre dans la balise onsubmit="return false"
- mettre sur le onclick de l'INPUT un return false après l'appel de la fonction calcul()
- surement d'autre

pour le reste je ne me prononcerais pas....
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 14h54   #3
Futur Membre du Club
 
Étudiant
Inscription : avril 2010
Messages : 127
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2010
Messages : 127
Points : 15
Points : 15
Bonjour,

D'accord, je vais regarder à ça
Medenor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 15h19   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Le souci provient de la soumission du form qui n'est pas utile et qu'il convient d'inhiber:

perso j'aurais inhibé l'action du form soit au niveau du bouton:
Code :
1
2
 
<CENTER><INPUT TYPE="image"  src="http://warforum-jdr.com/phpBB3/sjdr/de2-gris.png" VALUE="Lancer&nbsp;!" NAME="BtnLan" onclick="calcul(des.value,nbr.value);return false;"></CENTER>
soit au niveau du onsubmit
Code :
<FORM onsubmit="return false;">
Pour ce qui est de l'ancienneté du code... tu n'avais pas besoin de le préciser il est en effet très pour.. heu crad... heu vieux ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 19h09   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Citation:
Envoyé par Medenor
c'est sûrement pas propre mais c'est du WIP
Citation:
Envoyé par Wikipedia
Le WIP projet est un projet d'infrastructure internet décentralisé, parfois associé a l'idée du web 3.0.
On en est loin !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 22h40   #6
Futur Membre du Club
 
Étudiant
Inscription : avril 2010
Messages : 127
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2010
Messages : 127
Points : 15
Points : 15
WIP: Work in Process (ou in Progress), soit en français, un encours de production, le travail en cours, non terminé et ayant requis un investissement.
http://fr.wikipedia.org/wiki/WIP


Vu que j'ai retiré le FORM, j'ai inhibé l'action du form au niveau du bouton avec le return false comme proposé par nosmoking ^^
Medenor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 08h50   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
codé à La Rache
http://www.risacher.com/la-rache/
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 10h22   #8
Futur Membre du Club
 
Étudiant
Inscription : avril 2010
Messages : 127
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2010
Messages : 127
Points : 15
Points : 15
Exactement ^^ N'ayant aucune connaissances en javascript, on fait avec les moyens du bord ^^ J'ai un membre qui devrait faire ça correctement, mais bossant déjà sur autre chose, c'est pour combler le temps qu'il s'en charge ^^
Medenor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 10h31   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Citation:
J'ai un membre qui devrait faire ça correctement,

__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h21.


 
 
 
 
Partenaires

Hébergement Web