Ik heb een javascript confirm box nodig voor een cms. Als er op "bedrijf verwijderen" geklikt worden moet er een javascript popupje komen met de vraag of relaties die bij het bedrijf horen ook verwijdert moeten worden. Je moet dan kunnen kiezen uit "Ja","Nee","Annuleren", zodat de verwijderactie helemaal geannuleerd kan worden en dat de gebruiker kan kiezen om de relaties mee te verwijderen of die te behouden. Is hier een standaard javascript iets voor? Met confirm() krijg ik namelijk maar 2 knoppen, maar het moeten er dus echt 3 zijn...
Wat heb je gezocht, wat heb je gevonden?
Hier bijvoorbeeld [google=javascript+yes+no+cancel] lees ik bij de eerste paar hits dat het onmogelijk is, je zult dus een andere oplossing moeten zoeken.
Hier bijvoorbeeld [google=javascript+yes+no+cancel] lees ik bij de eerste paar hits dat het onmogelijk is, je zult dus een andere oplossing moeten zoeken.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Naast dat er in javascript niet een dergelijke dialog bestaat hoort javascript ook niet in PRG.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Ten eerste bestaat het inderdaad niet en zal je dus zelf iets in elkaar moeten knutselen (of VBScript gebruiken, wat voor zover ik weet alleen in IE werkt) en ten tweede zit je hier verkeerd. Zie ook Waar hoort mijn topic? 
PRG>>WEB
PRG>>WEB
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
laat gewoon een formulier zien met 3 buttons/linkjes naar de verschillende acties die uitgevoerd moeten gaan worden, laat deze met javascript omhoog springen als iemand op verwijderen klikt
Icons are overrated
excuses voor de foute post dan, maar nee en annuleren is niet hetzelfde. Bij annuleren verwijdert hij helemaal niks, en bij nee wordt het bedrijf wel verwijdert, maar de relaties die bij dat bedrijf horen niet... maar dit wordt gewoon zelf knutselen dan?djmantri schreef op maandag 16 april 2007 @ 13:15:
Wat is er eigenlijk (in jouw opzicht) het verschil tussen Nee en Annuleren? Aangezien je bij nee ook niet doorgaat?
En wat doet "ja" dan?avdwerf schreef op maandag 16 april 2007 @ 13:57:
[...]
excuses voor de foute post dan, maar nee en annuleren is niet hetzelfde. Bij annuleren verwijdert hij helemaal niks, en bij nee wordt het bedrijf wel verwijdert, maar de relaties die bij dat bedrijf horen niet... maar dit wordt gewoon zelf knutselen dan?
disjfa - disj·fa (meneer)
disjfa.nl
lees de startpost dan
Ja: ook de relaties verwijderen
Nee: alleen het bedrijf verwijderen
Annuleren: niks doen
Net zoals dat in elke applicatie zo werkt, en dus niet met radio boxen gaan werken wat dat is gewoon onhandig. Je moet (helaas) zelf een popupje maken waarin je deze 3 knoppen zet.
om eerlijk te zijn, ben je niet bezig je gebruikers op te zadelen met een uiterst onhandige keuze die je applicatie voornamelijk slechter bruikbaar maakt?avdwerf schreef op maandag 16 april 2007 @ 13:06:
Ik heb een javascript confirm box nodig voor een cms. Als er op "bedrijf verwijderen" geklikt worden moet er een javascript popupje komen met de vraag of relaties die bij het bedrijf horen ook verwijdert moeten worden. Je moet dan kunnen kiezen uit "Ja","Nee","Annuleren", zodat de verwijderactie helemaal geannuleerd kan worden en dat de gebruiker kan kiezen om de relaties mee te verwijderen of die te behouden. Is hier een standaard javascript iets voor? Met confirm() krijg ik namelijk maar 2 knoppen, maar het moeten er dus echt 3 zijn...
zelfs de aloude 'ja', 'nee' confirm boxen zijn veeleer een schandvlek op usability, maar hooguit bruikbaar doordat ze zo eenvoudig zijn dat je meestal er weinig fout mee kunt doen, het is 'ja' om je voorheen gekozen actie door te voeren en nee om deze af te zeggen ..
uit usability-oogpunt zou het beter zijn om in de te kiezen actie de handling te specificeren (dus niet 'ja' of 'ok', maar 'bestand verwijderen', en het liefst ook nog de default handeling op de 'cancel' te kunnen zetten, en niet standaard op 'ok' zoals bij de javascript confirm)..
dat voorkomt dat mensen zich 'aanwennen' om standaard direkt op de 'ja' te klikken en de confirm niet meer is dan een ergenis die _eventjes ophoud; maar in geval van een vergissing men tóch te laat erachterkomt de foute handeling uitgevoerd te hebben (zeker als de gebruiker meermaals en op verschillende handelingen deze moet 'confirmen')
Het idee om twee verschillende handelingen, én nog een cancel te bieden; af te vangen met één standaard confirm is vragen om gebruikers die zich vergissen en de verkeerde knop drukken ...
Zelfs al zou daartoe ook een standaard technische mogelijkheid bestaan (die er dus bewust ook niet is, al zou ik MS eigenlijk wel voor aanzien, die zijn berucht om hun onhandige plaatsen van 'confirm's)
Ik kan je enkel aanraden om twee gescheiden buttons te maken in de interface en deze al duidelijk te scheiden, een ander uiterlijk te geven.
[ Voor 7% gewijzigd door RM-rf op 16-04-2007 14:24 ]
Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen
Dat is imo juist onhandiger, nu heb je gewoon 1 verwijder actie met een vraag of je eventueel ook de relaties van dat te verwijderen item mee wilt verwijderen, wat doorgaands ook het geval is. Juist door extra knoppen in je interface te plaatsen krijg je onduidelijkheid.RM-rf schreef op maandag 16 april 2007 @ 14:20:
Het idee om twee verschillende handelingen, én nog een cancel te bieden; af te vangen met één standaard confirm is vragen om gebruikers die zich vergissen en de verkeerde knop drukken ...
Ik kan je enkel aanraden om twee gescheiden buttons te maken in de interface en deze al duidelijk te scheiden, een ander uiterlijk te geven.
Verder is dat niet altijd mogelijk, want als je de "DEL" knop van het toetsenbord afvangt, wat betekend die dan?
HTML:
1
| <a href="delete.php?id=<?php print $id; ?>" onclick="return confirm('Bent u zeker dat u dit bericht wilt verwijderen'); return false;">Delete</a> |
Geen geblaat oid. Yes = verwijder, No = niet verwijderen (== Annuleren)
[ Voor 19% gewijzigd door Snake op 16-04-2007 14:34 ]
Going for adventure, lots of sun and a convertible! | GMT-8
Kwa usability druk ik altijd op nee als ik iets niet zeker weet. Als dan ineens wel vanales verwijdert word zou ik het niet meer volgen als klant zijnde.Erkens schreef op maandag 16 april 2007 @ 14:24:
[...]
Dat is imo juist onhandiger, nu heb je gewoon 1 verwijder actie met een vraag of je eventueel ook de relaties van dat te verwijderen item mee wilt verwijderen, wat doorgaands ook het geval is. Juist door extra knoppen in je interface te plaatsen krijg je onduidelijkheid.
Het is een leuke oplossing om meerdere mogenlijkheden te hebben. Maar niet met een "ja/nee" scherm.
Wat je wel kan doen is een extra scherm als je dingen wilt verwijderen met zoals al eerder voorgesteld een berg radio knoppen met vragen als "verwijder alleen relatie", "verdwijder alles" met daaronder een ok en annuleer knop.
disjfa - disj·fa (meneer)
disjfa.nl
een 'verwijder' actie is meestal niet de plek die je wilt 'vereenvoudigen door veel verschillende acties te clusteren:Erkens schreef op maandag 16 april 2007 @ 14:24:
[...]
Dat is imo juist onhandiger, nu heb je gewoon 1 verwijder actie met een vraag of je eventueel ook de relaties van dat te verwijderen item mee wilt verwijderen, wat doorgaands ook het geval is. Juist door extra knoppen in je interface te plaatsen krijg je onduidelijkheid.
dus bv het verwijderen van enkel de relaties of het gehele record onder dezelfde knop zetten ...
Het kan erg leuk lijken (veel programmeurs denken al te graag aan 'tijdswinst' en het samenvoegen van acties), maar het is een recept voor vergissingen ... en helaas kennen veel webapplicaties dan geen 'undo'
Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen
Je kan natuurlijk ook denken aan een dubbel dialoog venster.
De eerste, met daarin de vraag in de trant van 'Weet je zeker dat je $bedrijf wilt verwijderen?'
En de tweede vraag (als de eerste vraag ja is) of de relaties met $bedrijf (ook) verwijderd mogen worden...
Zoiets behoor je eerder in een backup te zetten, dan dat je er een speciale functie / structuur voor schijft imo...
De eerste, met daarin de vraag in de trant van 'Weet je zeker dat je $bedrijf wilt verwijderen?'
En de tweede vraag (als de eerste vraag ja is) of de relaties met $bedrijf (ook) verwijderd mogen worden...
Hoe wilde je dan een undo functie / structuur bouwen?RM-rf schreef op maandag 16 april 2007 @ 14:28:
Het kan erg leuk lijken (veel programmeurs denken al te graag aan 'tijdswinst' en het samenvoegen van acties), maar het is een recept voor vergissingen ... en helaas kennen veel webapplicaties dan geen 'undo'.
Zoiets behoor je eerder in een backup te zetten, dan dat je er een speciale functie / structuur voor schijft imo...
HTML:
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
| <script type="text/javascript"> function deleteBedrijf(id) { ... document.getElementById('delBedrijfConfirm').style.display = "block"; document.forms.delBedrijf.bid.value = id; } function delCancel() { document.getElementById('delBedrijfConfirm').style.display = "none"; } </script> ... <style type="text/css"> div#delBedrijfConfirm { position: absolute; left: 50%; top: 50%; width: 400px; height: 200px; margin-left: -200px; margin-top: -100px; padding: 5px; } div#delBedrijfConfirm form { margin: 0; padding: 0; } div#delBedrijfConfirm form ul { margin: 0; padding: 0; list-style-type: none; } div#delBedrijfConfirm form ul li { padding-left: 10px; } </style> ... <div id="delBedrijfConfirm" style="display: none;"> <form action="delete.php" name="delBedrijf"> <input type="hidden" name="bid" value=""> <p>Wat wilt u verwijderen?</p> <ul> <li><button type="submit" name="delwat" value="bedrijfEnRelaties">Het bedrijf en bijbehorende relaties</button></li> <li><button type="submit" name="delwat" value="alleenBedrijf">Alleen het bedrijf</button></li> <li><button type="button" onclick="delCancel();">Annuleren</button></li> </ul> </div> |
delete.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| if( isset($_POST['delwat']) ) { // bedrijf en relaties verwijderen if( $_POST['delwat'] == "bedrijfEnRelaties") { // code } elseif( $_POST['delwat'] == "alleenBedrijf") { // code } else { die("ongeldige keuze"); } } |
Zo zou je volgens mij een heel eind moeten komen... (ongeteste code, ik geef er geen garanties op, blablabla
We are shaping the future
Zoiets heb ik nu dus al, maar dit wilde ik gaan vereenvoudigen tot 1 dialoogje waar de gebruiker iets aan moet gevenGJ-tje schreef op maandag 16 april 2007 @ 14:36:
Je kan natuurlijk ook denken aan een dubbel dialoog venster.
De eerste, met daarin de vraag in de trant van 'Weet je zeker dat je $bedrijf wilt verwijderen?'
En de tweede vraag (als de eerste vraag ja is) of de relaties met $bedrijf (ook) verwijderd mogen worden...
gewoon een veld in de database met gearchiveerd, en dan 0 of 1, zo blijft alles gewoon in de database staan en wordt er niks 'definitief' verwijderdGJ-tje schreef op maandag 16 april 2007 @ 14:36:
Hoe wilde je dan een undo functie / structuur bouwen?
Zoiets behoor je eerder in een backup te zetten, dan dat je er een speciale functie / structuur voor schijft imo...
thnx ik zal er eens naar gaan kijkenAlex) schreef op maandag 16 april 2007 @ 14:46:
Zo zou je volgens mij een heel eind moeten komen... (ongeteste code, ik geef er geen garanties op, blablabla
afaik ging het niet om alleen de relaties verwijderenRM-rf schreef op maandag 16 april 2007 @ 14:28:
een 'verwijder' actie is meestal niet de plek die je wilt 'vereenvoudigen door veel verschillende acties te clusteren:
dus bv het verwijderen van enkel de relaties of het gehele record onder dezelfde knop zetten ...
Ik denk eerder aan gebruiksgemak en overeenkomst met desktop applicaties als ik met een webapp bezig ben.Het kan erg leuk lijken (veel programmeurs denken al te graag aan 'tijdswinst' en het samenvoegen van acties), maar het is een recept voor vergissingen ... en helaas kennen veel webapplicaties dan geen 'undo'
Veel desktop applicaties zijn nu ook weer niet het toonbeeld van usability trouwens.Erkens schreef op maandag 16 april 2007 @ 15:21:
Ik denk eerder aan gebruiksgemak en overeenkomst met desktop applicaties als ik met een webapp bezig ben.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Dat kan ook nog inderdaad, maar dan zit je weer met mutaties die plaatsvinden, omdat bijvoorbeeld de NAW-gegevens gewijzigt zijn, dan moet je die dingen ook bij houden...avdwerf schreef op maandag 16 april 2007 @ 15:04:
Gewoon een veld in de database met gearchiveerd, en dan 0 of 1, zo blijft alles gewoon in de database staan en wordt er niks 'definitief' verwijderd.
En dan kan je het beste mijns inziens met een koppeltabel gaan werken...
Waar je zelfs dat soort dingen bijhoudt en dus ook 'archief' kan zetten...
Pagina: 1