Avatar billede claushelth Nybegynder
03. juli 2003 - 23:42 Der er 20 kommentarer og
2 løsninger

fortryd/fortsæt -boks til link

Jeg har lavet en side med nogle almindelige links.

Nogle af linksne er til sletfunktioner (i php), og jeg vil derfor gerne aktivere en advarelsesboks inden den går videre til slet funktionen.

Jeg tænkte at dette kunne ske med JavaScript

...hvad siger I?

claus
Avatar billede whatever Nybegynder
03. juli 2003 - 23:48 #1
Du kan benytte en confirm-box. Hvis den skal benyttes mange steder er det lettest, at lave en funktion:

function delete(url,msg) {
  if (url && msg) {
    if (confirm(msg) == true)
      location.href = url;
  }
}

Så kalder du den f.eks. med:

<a href="java script:delete('delete_news.php?newsid=3','Ønsker du at slette denne nyhed?')">Slet</a>


Hvis delete()-funktionen kun skal benyttes til f.eks. at slette nyheder med, kan du "hardcode" beskeden og url'en ind i funktionen, så du kun skal have id'et med hver gang funktionen kaldes.
Avatar billede claushelth Nybegynder
03. juli 2003 - 23:51 #2
forsøger lige..
Avatar billede roenving Novice
04. juli 2003 - 00:06 #3
>>whatever

Hvorfor spø'r du om true==true ? Det giver da svaret true, så bare:

    if (confirm(msg))
giver samme resultat ...
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:10 #4
der er noget fejl i mit javascript...skiver den i browseren
Jeg skal jo inkludere det i noget php...nu håber jeg ikke at jeg forvirre nogen.

Jeg har denne udskrift på html siden:
            <!-- Validering af sletning - START -->           
            <script language=javascript type=\"text/javascript\">

                function delete(url,msg)
                {
                      if(url && msg)
                    {
                            if (confirm(msg) == true)
                          location.href = url;
                    }
                }

            </script>
            <!-- Validering af sletning - SLUT -->

Det er da korrekt...ikke?
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:16 #5
Her er mit link (da det skrives i php escaper jeg " tegn med backslash):
<a href=\"java script:delete('/bruger_funk/profil/slet_profil?BrugerID=$BrugerID','Bekræft sletning!')\">Klik her</a>"

Jeg får stadig jejl i javascript
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:19 #6
Dan gør slet ingenting når jeg trukker på linket??
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:25 #7
jeg kiggede i kildekoden for lettere at finde fejlen...men kan ikke se det:

Linket:
<a href="/bruger_funk/profil/red_profil?BrugerID=77">Klik her</a>

Funktionen:

<!-- Validering af sletning - START -->           
            <script language=javascript type="text/javascript">

                function delete(url,msg)
                {
                      if(url && msg)
                    {
                            if (confirm(msg))
                          location.href = url;
                    }
                }

            </script>
            <!-- Validering af sletning - SLUT -->

Det er vel uden betydning hvor javascript-funktionen står på siden..i <header> eller i bunden?
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:37 #8
Nu har jeg forsøgt at sætte :
if (confirm("Hello world"))
{
    document.write("Du valgte OK<br>");
}
ind i funktionen istedet for at gøre den mere simpel...og for at finde fejlen...men den er stadig gal, så det må da være funktionskaldet der er forkert??
Avatar billede roenving Novice
04. juli 2003 - 00:41 #9
Den har jo helt fjernet linket til javascript-funktionen, så måske skulle du lave dit link sådan:

echo "<a href=\"#\" onclick=\"delete('/bruger_funk/profil/slet_profil?BrugerID=$BrugerID','Bekræft sletning!');return false\">Klik her</a>"

hth
jes
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:43 #10
hvad betyder # havelågen?
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:49 #11
roeving ->nej desværre..stadig fejl :-(

ja du skriver at den ikke får funktionskaldet med i kildekoden, men alligevel kan man se funktionskaldet nede i hjørnet af browseren når man rykker musen hen over.
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:56 #12
ahh, ja # kender jeg..ligemeget med den

Men funktionskaldet i kildekoden til siden viser stadig intet funktionskald
Avatar billede claushelth Nybegynder
04. juli 2003 - 00:59 #13
nej nu kom den med, men den gør ingenting når jeg trykker på linket..

<a href="#" onclick="delete('/bruger_funk/profil/slet_profil?BrugerID=77','Bekræft sletning!');return false">Klik her</a>

i bunden af broxseren kan man se linket til bruger_funk/profil/slet_profil?BrugerID=77 men med et # bagefter, men det er vel ligemeget.
Avatar billede claushelth Nybegynder
04. juli 2003 - 01:00 #14
og den siger stadig fejl på side
Avatar billede roenving Novice
04. juli 2003 - 02:02 #15
Egentlig burde man lave sådan noget inde i en form og så skulle koden se sådan ud:

<form method="post" action="/bruger_funk/profil/red_profil?BrugerID=77" onsubmit="return confirm('Bekræft sletning!');">
<input type='submit' value="Slet Nyhed">
</form>

Men det er jo ganske ofte upraktisk, og den metode du bruger er der i princippet ikke noget galt med -- andet end der er flere fejlmuligheder ...

Du kan jo lige teste den mulighed, så må vi jo bygge den tilbage til det rigtige, hvis det funker !-)
Avatar billede claushelth Nybegynder
04. juli 2003 - 13:00 #16
det der er problemet er at få overført varible til js funktionen.
Jeg har dette lille script som jeg fandt og virker...kører uden php:

<BODY>
</Script>
</Font>
<br><br>
    <a href="http://www.script.dk" onClick="over()">link</a>
    <SCRIPT LANGUAGE="JavaScript">
        function over() {
            alert("Du bliver nu vidersendt");
        }
    </SCRIPT>
</BODY>

men sætter jeg et argument ind i den sender den en videre uden at vise alertboksen, så det må være fordi jeg ikke kan finde ud af at overføre et simpel argument:

<BODY>
</Script>
</Font>

<br><br>
    <a href="http://www.script.dk" onClick="over("Vidersending")">link</a>
    <SCRIPT LANGUAGE="JavaScript">
        function over(msg) {
            alert(msg);
        }
    </SCRIPT>
</BODY>

Har arbejdet en del med C og php, men ikke javascript før.
Avatar billede roenving Novice
04. juli 2003 - 14:23 #17
Det er fordi du ikke må bruge den samme streng-delimiter indeni sig selv:

"over("Vidersending")"
parses:

"over("
Vidersending
")"
og fortolkes:"over()"???????? - nå men jeg har jo alligevel udført noget (siger browseren)

så selv om der er en syntaks-fejl eksekveres funktionen, men da der helt åbenlyst ikke er noget at alerte springes den over ...

Så det du skal, er:

<BODY>
</Script>
</Font>

<br><br>
    <a href="http://www.script.dk" onClick="over('Videresending')">link</a>
    <SCRIPT LANGUAGE="JavaScript">
        function over(msg) {
            alert(msg);
        }
    </SCRIPT>
</BODY>

eller (hvis du har brug for godkendelse af handlingen:

<BODY>
</Script>
</Font>

<br><br>
    <a href="http://www.script.dk" onClick="return over('Vil du Videresends?')">link</a>
    <SCRIPT LANGUAGE="JavaScript">
        function over(msg) {
            return confirm(msg);
        }
    </SCRIPT>
</BODY>
Avatar billede claushelth Nybegynder
04. juli 2003 - 16:01 #18
jep du havde ret, og det endte med at blive min løsning. Jeg ved ikke om den er ok eller det er noget slam, men den virker fint:
Kildekode:
Her er funktionen:
            <!-- Validering af sletning - START -->           
            <script language="javascript" type="text/javascript">
           
                function bekraeftSlet(msg,url)
            {
                if(msg,url)
                {
                            if(confirm(msg))
                    {
                        location.href = url;
                    }
                }   
                }
            </script>
            <!-- Validering af sletning - SLUT -->

og her er kaldet:

<a href="#" onClick="over('Vil du slette?','/bruger_funk/profil/slet_profil?BrugerID=77')">Klik her</a>

roenving-> læg et svar og jeg fordeler point

Tak for hjælpen :-)
Avatar billede claushelth Nybegynder
04. juli 2003 - 16:03 #19
Hvis man vil smugkigge har jeg lavet det her http://www.chelth.dk
Avatar billede roenving Novice
04. juli 2003 - 16:14 #20
-- jeg _ved_ ikke om din if(msg,url) konstruktion er lovlig, men en hurtig test viste, at den nok ikke reagerer hensigtsmæssigt, hvis du kommer til at lave en fejl i kaldet -- og så er den vel ikke så meget værd:

if(msg && url) skulle til gengæld være det du er ude efter ...

-- og selv ville jeg nok for læselighed skrive det helt ud:

if(msg!='' && url!='')

'-)
Avatar billede claushelth Nybegynder
04. juli 2003 - 16:16 #21
roenving ->takker , du har selvfølgelig ret, jeg havde bare været lidt for hurtig.
Avatar billede roenving Novice
04. juli 2003 - 16:30 #22
-- og jeg takker for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester