tu fais tes tests sur quoi comme navigateur ?
Version imprimable
tu fais tes tests sur quoi comme navigateur ?
mon code touren sous IE et FFX ...
l'appel du script ne se fait qu'au moment du click donc pas au moment du refresh de la page ???? 8O8O8O8O8O8O8O
ok donc là je ne vois pas pkoi j'ai plusieur cadre alors dans mon popup
j'ai fait appel à mon script juste avant le onclick il se trouve dans le body et pour moi c'est pas des listes "li "mais une seule cellule d'un tableau "td"
et j'ai pas trop compris le concept de la fonction remote
mon idée pour ne pas avoir de doublons est en faite de vérifier si l'email est dans la liste ou pas voila est ce corretc ou pas ?
???l'ergonomie m'échappe totalement... l'ajout d'un destiantaire dans la liste n'est conditionné que par le click non ?Citation:
j'ai fait appel à mon script juste avant le onclick
dasn un li ou dans un td peu importe ...
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 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>selectmailpop</title> <script type='text/javascript'> var mypop=null var mailingList function addToList(Email){ switch (true){ case mypop==null: mypop=window.open("","DESTINATAIRES","scrollbars=0,menubar=0, toolbar=0,width=200, height=400") // setInterval("Javascipt:void(0);",10000); // le select var dest=mypop.document.createElement("select"); dest.id='destinataires'; dest.size='20'; dest.style.width='180px' mypop.document.body.appendChild(dest); //le bouton d'envoi mailbut=mypop.document.createElement('input'); mailbut.type='button'; mailbut.value='envoyer'; mailbut.onclick=function(){self.location.href="mailto:"+mailingList;}; mypop.document.body.appendChild(mailbut); mypop.document.body.onbeforeunload=function(){mailingList='';mypop=null;}; case mypop!=null: var newDest=mypop.document.createElement('option') newDest.value=Email; newDest.innerHTML=Email; mailingList+=Email+";" mypop.document.getElementById('destinataires').appendChild(newDest); mypop.focus(); } } function Remove(obj){ obj.parentNode.parentNode.removeChild(obj.parentNode) } </script> <style type='text/css'> li {cursor:pointer;} </style> </head> <body onkeyup='alert(e.keycode)'> <table> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <table> </body>
non voila mon code
je ne veux pas que mon mails disparaissent dans la page principaleCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <html> <head> <title>Liste des contacts</title> </head> <body> <? php $query = "select * from $table c order by $nom limit $depart,15"; $result=connexion->select($query); echo '<script src="libraries/popup2.js" type=\'text/javascript\'></script>'; for ($i = 0; $i < count($result); $i++)//boucle qui parcours le tableau { echo '<td class="email" onclick="addToList(this.innerHTML)">'.$result[$i]->$mail.'</td>'; } ?> </body> </html>
j'ai enlevé des données que tu n'as pas besoin et qui ne change rien à mon problème
voila peux être notre différence qu'on a ?
est ce que tu as aussi l'erreur dans outlook le mot undefined avant les adresses mails ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <html> <head> <title>Liste des contacts</title> <script src="libraries/popup2.js" type=\'text/javascript\'></script> </head> <body> <? php $query = "select * from $table c order by $nom limit $depart,15"; $result=connexion->select($query); for ($i = 0; $i < count($result); $i++)//boucle qui parcours le tableau { echo '<td class="email" onclick="addToList(this.innerHTML)">'.$result[$i]->$mail.'</td>'; } ?> </body> </html>
est ce qu'on peux vérifier l'adresse mail avant de l'ajouter et si il existe on peut faire un message alert("Email déjà ajouté"); ?
ça change rien de mettre le script dans le head ou dans le body
ben teste le au niveau serveur ...
dasn ma solution il n'est pas possible d'ajouter deux fois le même mail si la liste de départ est correcte car la ligne est supprimée dès que l'on clique dessus ...
sinon faudra tester unCode:mailingList.indexOf(Email)
ça fonctionne cette condition
if(!mailingListe.indexOf(Email))
fais un alert ...
de mémoire si il n'y a rien ça retourne -1 ...
:? hein j'ai pas compris
devrait te retourner -1 si il ne trouve pas de match ...Code:alert(mailingListe.indexOf(Email))
et tu veux en venir ou ?
je pensai faire ceci
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 switch (mailingList.indexOf(Email)){ case -1: var newDest=mypop.document.createElement('option') newDest.value=Email; newDest.innerHTML=Email; mailingList+=Email+"," mypop.document.getElementById('destinataires').appendChild(newDest); mypop.focus(); break; default: alert("Email déjà sélectionné"); }
non ben c'est bon tu partais sur
mais tu as recadré sur -1 alors tout baigne ...Code:if(!mailingList.indexOf(Email))
mais ça fonctionne pas
il me dit que mon mailingListe dans mon switch n'est pas une propriété
et à quoi sert cette ligne
Code:
1
2 mypop.document.body.onbeforeunload=function(){mailingList='';mypop=null;};
à la fermeture du popup je vide la liste et je rend la variable popup nulle de sorte que ça ne plante plus ..
ok d'accord j'ai compris mais chez moi ça plante pourquoi ?
je trouve ça bizar
mais ton programme seul fonctionne très bien mais dès que je le mets dans mon code ça plante et je n'ai rien modifié
et est ce que tu as le pb sur outlook ou pas ?
tu es sous firefox ?
sur IE et sur Firefox
le système de la fermeture fonctionne j'avais oublie un paramètre maintenant il me reste le problème avec les doublons et le pb avec le système de page suivante
serait il pas possible de mettre le bouton après un ajout et lorsque j'ajoute un autre mail ça efface ou alors ça écrase le bouton, le mettre a une position fixe dans la fenetre par exemple
Arf on est coincés il semblerait que firefox n'accepte pas le onbeforeunload, ni aucun évènement de fermeture du popup ...
peut être alors avec un try / catch ???
quelle est la fonctionne en javascript qui permet de voir l'élément sélectionné, je pense à ça pour la suppression dans le select
je pense que c'est onfocus() mais je ne suis pas sure
je pensai à un truc est ce qu'on pourrait pas faire à la place du remove, c'est à dire effacer de l'écran , un système pour ne plus cliquer dessus, c'est à dire enlever l'événement onclick()
est ce qu'il existe une fonction qui permet de supprimer un objet du select et une fonction qui enlève aussi dans le mailingList
question à deux balles ... tu as vraiment besoin d'un popup...
si tu as un faux popup ? un div dans la même page qui ressemble à un popup ??
oui pkoi pas mais je sais pas comment faire
et j'ai mis un bouton supprimer qui fais ça
ça fonctionne sous Firefox et ça fonctionne sur IECode:
1
2
3
4
5
6
7 //le bouton supprimer mailsup=mypop.document.createElement('input'); mailsup.type='button'; mailsup.value='supprimer'; mailsup.onclick=function(){if(dest.options[dest.selectedIndex].value != 0){dest.options[dest.selectedIndex] = null;}}; mypop.document.body.appendChild(mailsup);
maintenant il me reste plus qu'à supprimer dans le mailingList
tiens repars de ça ...
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 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>selectmailpop</title> <script type='text/javascript'> var mailingList="" function addToList(Email){ var Mypop= document.getElementById('mypop') switch (true){ case (Mypop.style.display=='none'): var dest=document.createElement("select"); dest.id='destinataires'; dest.size='10'; dest.style.width='180px' Mypop.appendChild(dest); Mypop.appendChild(document.createElement('br')); //le bouton d'envoi mailbut=document.createElement('input'); mailbut.type='button'; mailbut.value='envoyer'; mailbut.onclick=function(){self.location.href="mailto:"+mailingList; mailingList=""; Mypop.style.display='none'}; Mypop.appendChild(mailbut); Mypop.style.display='block'; case !(Mypop.style.display=='none'): var newDest=document.createElement('option') newDest.value=Email; newDest.innerHTML=Email; mailingList+=Email+";" document.getElementById('destinataires').appendChild(newDest); } } function Remove(obj){ obj.parentNode.parentNode.removeChild(obj.parentNode) } </script> <style type='text/css'> td {cursor:pointer;} </style> </head> <body > <div id='mypop' style="position:absolute; top100px; left:200px; border:solid 2px red;z-index:10;display:none;height:200px; width:200px; overflow:auto;"></div> <table> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <tr> <td onclick="addToList(this.innerHTML);Remove(this)">truc machin chouette</td> </tr> <table> </body>
pkoi veux tu faire un "remove" ? je ne veux pas les effacer mais juste enlever l'événement "onclick" dès qu'on a cliquer dessus
et je ne peux pas mettre une nouvelle div car ma page est déjà pleine et je ne sais pas ou la mettre voila pourquoi j'ai choisit de faire un popup
ce qu'il me reste à faire c'est de vérifier si les "boutons" existent déjà et que le "select" existe lui aussi
et l'erreur dans outlook avec le mot "undefined" qui se trouve devant le premier mail et enfin pour la suppresion dans le "mailingList" de l'élément supprimer dans le select
au démarrage il y a "undefined" qui se trouve dans le "mailingList" comment l'enlever ???
pour cette dernière étape , j'avais pensé au lieu de mettre au fur et à mesure dans le "mailingList" les emails, est ce possible de récupérer le contenu du "select" et de le mettre dans le "mailingList" lors du cliquage sur le bouton "envoyer"
pour le undefined c'est au moment de la déclaration de la variable:
ça devrait résoudre ton trucCode:var mailgList=''
pb résolu pour la variable "undefined", au démarrage j'ai déclaré la variable vide voila c'est tout
comment faire pour voir si il existe déjà le select et aussi les boutons ???
Code:if(document.getElementById('moselect')){alert('il existe')}
c'est quoi le moselect ?
j'ai fait ça
pour le select
pour le boutonCode:
1
2
3 if(!mypop.document.body.getElementById("select")) mypop.document.body.appendChild(dest);
mais ça fonctionne pas ou pourrait être ma faute ?Code:
1
2
3 if(!mypop.document.body.getElementById('input')) mypop.document.body.appendChild(mailbut);
c'est un exemple c'est l'id de l'objet que tu veux tester :boulet: :mrgreen:
j'ai fait ça
Code:
1
2
3
4
5
6
7
8 // le select var dest=mypop.document.createElement("select"); dest.id='destinataires'; dest.size='20'; dest.style.width='220px' if(!mypop.document.body.getElementById('destinataires')) mypop.document.body.appendChild(dest);
j'ai réussi à faire pour ne plus avoir de répétition du cadre et des bouton s lors du chargement de la page suivante ou précedente
j'ai fait ça
mais je n'ai plus d'action sur mes boutons :?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 var mypop var mailingList = ''; function addToList(Email){ switch (true){ case mypop==null: mypop=window.open("","DESTINATAIRES","scrollbars=0,menubar=0, toolbar=0, width=240, height=380, top=10, left=10") // le select var dest=mypop.document.createElement("select"); dest.id='destinataires'; dest.size='20'; dest.style.width='220px' if(!mypop.document.getElementById('destinataires')) mypop.document.body.appendChild(dest); //le bouton supprimer mailsup=mypop.document.createElement('input'); mailsup.id='suppression'; mailsup.type='button'; mailsup.value='supprimer'; mailsup.onclick=function(){if(dest.options[dest.selectedIndex].value != 0){dest.options[dest.selectedIndex] = null;}}; if(!mypop.document.getElementById('suppression')) mypop.document.body.appendChild(mailsup); //le bouton d'envoi mailbut=mypop.document.createElement('input'); mailbut.id='valider'; mailbut.type='button'; mailbut.value='envoyer'; if(!mypop.document.getElementById('valider')){ mailbut.onclick=function(){self.location.href="mailto:"+mailingList;}; mypop.document.body.appendChild(mailbut); } mypop.document.body.onbeforeunload=function(){mailingList='';mypop=null;}; case mypop!=null: var newDest=mypop.document.createElement('option') newDest.value=Email; newDest.innerHTML=Email; mailingList+=Email+"," mypop.document.getElementById('destinataires').appendChild(newDest); mypop.focus(); } }
c'est bon j'ai mis les functions dans la liste et ça fonctionne bien lors que je reste sur la meme page et lorsque je change de page je n'ai plus d'action :(
tu es resté avec le popup ???
as tu au moins testé le code sans popup ça résoudrait bien des problèmes ...
oui j'ai testé et le pb c'est que je n'ai pas de place pour mettre une div dans ma page, voila merci quand meme mais je trouve plus simple les popups car ça fait une page a part