Avatar billede little_kim86 Nybegynder
20. maj 2006 - 17:02 Der er 79 kommentarer og
1 løsning

Åben popup vindue, bliver lukket når en funktion er udført

Hej


Jeg har brug for hjælp...

Jeg skal lave en funktion der kan åbne et popup vindue når der trykkes på en knap, nå funktionen(erne) er udført på siden der åbnes i popup vinduet, lukkes det igen og den side der har åbnet popup vinduet opdateres...

Er det noget der er muligt...???
Avatar billede thesurfer Nybegynder
20. maj 2006 - 17:56 #1
Hoved-siden:
<input type="button" onclick="window.open('side.htm','popupvindue','')" value="pop">

Popup:

<script type="text/JavaScript">
function blah()
{
// din kode her

opener.window.reload(true);
self.close();
}
</script>
Avatar billede thesurfer Nybegynder
20. maj 2006 - 17:56 #2
Man bør bruge <script type="text/JavaScript" language="JavaScript"> ..
Avatar billede little_kim86 Nybegynder
20. maj 2006 - 18:02 #3
behøver jeg bruge det der function blah()???
Avatar billede thesurfer Nybegynder
20. maj 2006 - 18:10 #4
Næh.. men du skrev "funktionen(erne)", så jeg gik ud fra at det var JavaScript funktioner.. :-)

Du skal bare bruge:

opener.window.reload(true); self.close();

Nu ved jeg ikke om du bare bruger en onclick eller hvad du nu bruger.. :-)
Avatar billede little_kim86 Nybegynder
20. maj 2006 - 18:36 #5
Det kommer bare til at hænge sammen med et almindeligt billede... Det er ikke nogen form eller noget... Men så er det vel bare:

<img onclick='window.open('side.htm','popupvindue','')' value='pop' title='Gør offenlig' border='0' src='genbrug/iconer/ikke_offenlig.gif' width='14' height='14'>
Avatar billede thesurfer Nybegynder
20. maj 2006 - 18:46 #6
Yep.. det er i hovedsiden..

Hvordan ser koden i popup'en ud?
Avatar billede little_kim86 Nybegynder
20. maj 2006 - 18:48 #7
<script type="text/JavaScript" language="JavaScript">

opener.window.reload(true);
self.close();

</script>

Ikke?
Avatar billede thesurfer Nybegynder
20. maj 2006 - 18:52 #8
Hmm.. Det vil sige, så snart at popup-siden er loadet, reloader den hovedsiden og lukker sig selv..?

Hvis det bare er det der skal gøres, kan du bare bruge:

<img onclick='window.location.reload(true)' value='pop' title='Gør offenlig' border='0' src='genbrug/iconer/ikke_offenlig.gif' width='14' height='14'>

PS:
Jeg har lige lagt mærke til, at jeg mangler "location" i de tidligere indlæg:

window.location.reload(true);
Avatar billede little_kim86 Nybegynder
20. maj 2006 - 20:30 #9
Altså man skal lige tykke på en knap i det popup vindue, så køre den noget php og så skal den opdate hovede siden og så lukke popup vinduet...
Avatar billede thesurfer Nybegynder
20. maj 2006 - 20:34 #10
Du kan ikke kører noget PHP ved at trykke på en knap, med mindre at knappen reloader siden.

PHP kan KUN køres, når en side (re)loades..
Avatar billede thesurfer Nybegynder
20. maj 2006 - 20:36 #11
Forklaring:
HTML/java script: Det køres på klientsiden, i browseren
PHP: Det køres på serversiden

Når en side skal "loades", smutter forespørgslen forbi serversiden, som sætter side op, og afvikles evt PHP. Når siden er sat op og er færdig, sendes den til klientsiden, hvor browseren er.
Avatar billede little_kim86 Nybegynder
20. maj 2006 - 20:37 #12
Nej ved jeg godt... Når man har trykket på en kamp på siden i popup vinduet går til en anden side der køre php'en og når det er slut skal vinduet lukke og hovedesiden lukke...
Avatar billede thesurfer Nybegynder
20. maj 2006 - 20:40 #13
Du kunne f.eks indsætte koden, efter det sidste PHP:

<?php
// noget php halløj her
?>
<script type="text/JavaScript" language="JavaScript">

opener.window.reload(true);
self.close();

</script>

Det kan godt være, at den ikke kender "opener" (= vinduet der åbnede dette vindue) fordi vinduet har loadet en anden url.. men det problem tro jeg ikke opstår..

Hvis det gør, kan man vist scripte (kode) sig ud af..
Avatar billede little_kim86 Nybegynder
20. maj 2006 - 20:43 #14
okay... Vil prøve at se på det engang i morgen...

Nu når jeg har dig, skal jeg lige høre om det er muligt at lave et et vindue der kommer om, sådan som windows gør, og så har man nogle valgmuligheder, så som ja og nej... Så bliver det man trykker sendt tilbage til siden "vinduet" kom fra... Og gør så funktionen alt efter om man har trykket ja eller nej..
Avatar billede thesurfer Nybegynder
20. maj 2006 - 20:48 #15
Ja, der bruger man Confirm:

onclick="if (window.confirm('Tryk OK hvis du vil')) { alert('ok'); } else { alert('cancel') };"

Man kan (så vidt jeg ved) ikke vise "Ja/Nej"-knapper, men kun "OK/Cancel"..
Avatar billede little_kim86 Nybegynder
20. maj 2006 - 20:50 #16
okay... Prøver lige det andet i morgen... mange tak for hjælpen indtil videre...
Avatar billede thesurfer Nybegynder
20. maj 2006 - 20:54 #17
Man kan vist droppe "window" i "window.confirm", så det bare er "confirm"..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 12:42 #18
Er lige ved at prøve det med window.confirm...

Men det jeg har brug for er at den skrive noget ind i en datebase og opdatere siden den kom fra... Men hvis man trykker cancel lukkes window.confirm winduet...

Kan du hjælpe med det?
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 13:41 #19
Har fundet en måde at lave det på... :-D
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 16:44 #20
Nu har jeg rigtig brug for din hjælp... Har fået lavet det der window.confirm og det ser sådan ud:

<img style="cursor: pointer;" onclick="if(window.confirm('Du er igang med at gøre videoen med følgende beskrivelse privat.\n\n\n\nBeskrivelse:\n<?php echo $beskrivelse; ?>\n\n\n\n\nVil du gøre denne video privat?')) { location.href = 'galleri/php/offenlig.php?<?php echo "page=$page&id=$id"; ?>'; };" title='Gør privat' border='0' src='genbrug/iconer/offenlig.gif' width='14' height='14'>



Mit helt store problem er så at i den beskrivelse kommer der til at være nogle smilies. Kan jeg få den med over i det window.confirm? Og hvordan gøres det? Er det muligt at gøre noget skrift fed, kursiv, evt. centere det??
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 17:23 #21
Og så virker opener.window.reload(true); ikke... Heller ikke selv om jeg putter den ind på den side der åbner i popup vinduet... Dem stoppe bare scriptet ikke køre færdig... Hvis jeg fjerner den linie køre scriptet færdig og vinduet lukker...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 17:58 #22
Man kan kun have tekst i en alert/confirm, dvs, man kan ikke indsætte billeder af smilies.

Jeg prøver lige at kigge på det, engang i aften..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 18:01 #23
Okay... SÅ var det bare derfor linien ikke virkede, da jeg havde noget html med over...

Nu er det sådan et jeg har en tekst i en datebare der skal med i alert boks. Det virker også fint, men hvis jeg laver linie skrift går det galt... En måde jeg kan omsætte de linie skrift HTML laver om til noget java kan bruge?
Avatar billede thesurfer Nybegynder
21. maj 2006 - 18:10 #24
Hvis jeg fjerner din PHP, så virker det :

<img style="cursor: pointer;" onclick="if(window.confirm('Du er igang med at gøre videoen med følgende beskrivelse privat.\n\n\n\nBeskrivelse:\n\n\n\n\n\nVil du gøre denne video privat?')) { location.href = 'galleri/php/offenlig.php?$page&id=$id'; };" title='Gør privat' border='0' src='genbrug/iconer/offenlig.gif' width='14' height='14'>

Jeg tester det senere..
Avatar billede thesurfer Nybegynder
21. maj 2006 - 18:17 #25
Jeg har lavet en lille test som virker: http://thesurfer.users.whitehat.dk/e/q/710691/

Jeg smutter nu.. er nok tilbage engang i aften..
Avatar billede thesurfer Nybegynder
21. maj 2006 - 18:18 #26
PS:

Koden er:

<?php
$beskrivelse = "*dette er beskrivelsen*";
$page = "thepage";
$id = "123";
?>

<img style="cursor: pointer;" onclick="if(window.confirm('Du er igang med at gøre videoen med følgende beskrivelse privat.\n\n\n\nBeskrivelse:\n<?php echo $beskrivelse; ?>\n\n\n\n\nVil du gøre denne video privat?')) { window.location.href = 'galleri/php/offenlig.php?<?php echo "page=$page&id=$id"; ?>'; };" title='Gør privat' border='0' src='genbrug/iconer/offenlig.gif' width='14' height='14'>

Check urlen når du klikker på OK, da siden jo ikke eksisterer.. :-)
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 18:23 #27
Okay... Skrive lidt det jeg har problemer med...

Jeg har problemer når der kommer et linie skrift i $beskrivelse, så går det galt... Hvordan kan jeg omskrive HTML linie skrift om til noget det alert/confirm vindue kan bruge? Så længe der ikke er linie skrift virker det fint...

Har også problemer med opener.window.reload(true); den virker ikke...
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 20:33 #28
Så virker det sidste punkt altså opener.window.reload(true);... Der skulle stå opener.location.reload(true); i stedet for... :-D

Men mangler stadig en løsning på det andet jeg skrev kl 21/05-2006 18:23:33
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:07 #29
reload er på location som er på window.. Egentlig burde man skrive:

opener.window.location.reload(true);

Det er vist mere korrekt.. :-)

--

Jeg kan ikke se hvad der går galt.. for min test virker fint.
Jeg bliver lige nødt til at se, hvad det er der står i din $beskrivelse.

Jeg kan kun gætte på, at der er et '- tegn i $beskrivelse. Hvis der er det, skal du erstatte '-tegnet med \'..

Jeg mener at det ser sådan ud i PHP:

$beskrivelse = str_replace("'", "\'", $beskrivelse);

- Hvad indeholder $beskrivelse?
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:12 #30
Når det er skrevet ud i html står der...

"Dette er en test


test"

Problemer er de linieskift
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:22 #31
Jeg mente, inden $beskrivelse blev udskrevet..
Mens ud er i PHP, hvad står der så i $beskrivelse?
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:26 #32
Det der er det eneste jeg kan se... Ved ikke hvordan jeg udskrive alle de specifike tegn... også det eneste jeg kan se hvis jeg gå ind i databasen og kigger...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:29 #33
Hmm... prøv det her:

$beskrivelse = str_replace("\n", "\\n", $beskrivelse);

inden du udskriver..
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:29 #34
Ellers kan man muligvis bruge nl2br funktionen i PHP.. eller stripslahes (eller hvad den nu hedder..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:31 #35
jep men hvorfor det når jeg bruger \n i resten af scriptet? Det virker heller ikke... Har endda skrevet det der stå i $beskrivelse ind fra et textarea...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:34 #36
Hmm.. ser lige om jeg kan lave en test..

Det der skal gøres, er at erstatte det normale linie skift, med et JavaScipt kan forstå..

Eksempel:

$beskrivelse = nl2br($beskrivelse);
£beskrivelse = str_replace("<br>", "\n", $beskrivselse);
£beskrivelse = str_replace("<br/>", "\n", $beskrivselse);
£beskrivelse = str_replace("<br />", "\n", $beskrivselse);

Det kan godt være, at det skal være "\\n" i stedet for "\n"..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:35 #37
Altså jeg er jo nød til ikke at bruge nl2br da den jo laver <br /> og det kan js jo ikke forstå vel? Det andet hjælper heller ikke på problemer...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:36 #38
Prøv lige: 21/05-2006 21:34:58
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:38 #39
Det hjælper ikke noget... :-(
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:38 #40
Rettelse (kom til at bruge "£" i stedet for "$"):

$beskrivelse = nl2br($beskrivelse);
$beskrivelse = str_replace("<br>", "\n", $beskrivselse);
$beskrivelse = str_replace("<br/>", "\n", $beskrivselse);
$beskrivelse = str_replace("<br />", "\n", $beskrivselse);
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:39 #41
det har jeg rettet...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:40 #42
Så må jeg lige lave en test..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:40 #43
sådan ser det ud hvis jeg ser kilden i Firefox:

onclick="if(window.confirm('Du er igang med at slette videoen med følgende beskrivelse.\n\n\n\nBeskrivelse:\nDer er pt. ingen beskrivelse af denne video :-)



test\n\n\n\n\nVil du slette denne video?')) { location.href = 'galleri/php/slet.php?page=galleri/oversigt.php&id=308'; };" title='Slet' border='0' src='genbrug/iconer/slet.gif' width='14' height='14'>
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:40 #44
De mellemrum du ser der, er helt sikkert dem der laver problemet...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:42 #45
Ja, det er derfor de skal laves om med nl2br, og derefter laves om med replace.

Har du ikke gjort det?
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:43 #46
ja det har jeg... Det virker ikke... Det virker heller ikke selv om jeg ikke bruger nl2br...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:44 #47
Jeg tester lige..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:44 #48
Det er jo fordi PHP på en eller anden måde udskriver det med det samme, ellers sådan noget...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:56 #49
Så har jeg den næsten.. :-)
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:58 #50
lyder bare kanont hvis det så virker :-p
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:58 #51
Sådan:

$beskrivelse = nl2br($beskrivelse);
$beskrivelse = str_replace("\r\n", "*", $beskrivelse);
$beskrivelse = str_replace("*", "", $beskrivelse);
$beskrivelse = str_replace("<br />", "\\n", $beskrivelse);

Jeg havde også stavet "beskrivelse" forkert i 21/05-2006 21:38:44..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 21:59 #52
hvordan har du fundet ud af at den bruger \r\n og *??? Det med beskrivelse var lige meget... Det laver jeg om det noget andet :-p
Avatar billede thesurfer Nybegynder
21. maj 2006 - 21:59 #53
Jeg fandt ud af, at nl2br indsætte "<br />" OG et linieskift.. :-)

Du kan faktisk nøjes med:

$beskrivelse = nl2br($beskrivelse);
$beskrivelse = str_replace("\r\n", "", $beskrivelse);
$beskrivelse = str_replace("<br />", "\\n", $beskrivelse);
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:01 #54
Jeg har før set kombinationen "\r\n".. så jeg prøvede det lige..

Jeg mener at "\r" er "carriage return"..

I Visual Basic er det vbCrLF, hvor Cr er Carrige Return, og LF er Line Feed

Til sammen bliver det et linieskift..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:01 #55
men det virker stadig ikke :-p
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:01 #56
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:03 #57
Som jeg skrev i 21/05-2006 21:59:50, er "*" overflødig.. du har kun bruge for disse linier:

$beskrivelse = nl2br($beskrivelse);
$beskrivelse = str_replace("\r\n", "", $beskrivelse);
$beskrivelse = str_replace("<br />", "\\n", $beskrivelse);

Jeg tør vædde med, at nl2br er overflødig.. :-)
tester lige..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:04 #58
<img style="cursor: pointer;" onclick="if(window.confirm('Du er igang med at slette dokumentet med følgende beskrivelse.\n\n\n\nBeskrivelse:\n<?php echo $BeskrivelseUdenHTML; ?>\n\n\n\n\nVil du slette dette dokument video?')) { location.href = 'galleri/php/slet.php?<?php echo "page=$page&id=$id"; ?>'; };" title='Slet' border='0' src='genbrug/iconer/slet.gif' width='14' height='14'>
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:04 #59
Det er det :-)

Du skal kun bruge:

$beskrivelse = str_replace("\r\n", "\\n", $beskrivelse);
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:04 #60
$BeskrivelseUdenHTML; ?? :-)
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:06 #61
ja det laver jeg bare variablen om til... Det har igen betydning... men det er lige somom det mangler at blive fjernet et mellemrum mere..
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:07 #62
Nope.. fejlen er hos dig.. :-)

Du har lavet om på koden, og bruger $BeskrivelseUdenHTML i stedet..
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:08 #63
sorry... Så er den der... SKulle lige huske \\n...

Men hvorfor bruger jeg \n og \\n det andet sted?
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:10 #64
"\n" betyder "indsæt linieskift"
Problemet er bare, at du indsætter linieskift, i stedet for at skrive at den skal indsætte nyt linieskift.. :-)

Både PHP og JavaScript læser "\n" som linieskift.

Derfor bliver man nødt til at "escape" værdien ("\n")
Escape betyder at putte et "\" foran, for at "sende" værdien videre.. ellers indsætter den linieskifter i PHP, og ikke JavaScript..

Lidt kringlet.. håber at du forstod det.. :-)
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:11 #65
Men så kan du vel hurtig forklare mig hvorfor jeg har flere linie skrift i IE når jeg skriver \n\n\n\n men kun 1 i Firefox...?
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:12 #66
Hvis PHP læser "hej\nmed\dig", udskriver den:

hej
med
dig

Dvs, den "afvikler" linieskiftet, i stedet for at udskrive den.

Hvis PHP læser "hej\\nmed\\ndig", udskriver den:

hej\nmed\ndig

dvs, udskriver "\n" i stedet for at afvikle linieskiftet..
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:13 #67
Det virker fint i Mozilla FireFox version 1.5.0.3 hos mig.
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:14 #68
ja nemlig... Det lagde jeg godt mækre til når jeg skrev \\n... Men kan du forklare det med Friefox og IE?
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:15 #69
Nej, jeg kan ikke forklare det.

Test på http://thesurfer.users.whitehat.dk/e/q/710691/02/ virker med Opera, Internet Explorer og Mozilla FireFox.

Hvilken version af FireFox bruger du?
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:18 #70
1.5.0.3...

Men det giver jo problemer hvis man så skriver hej \nhej i en sætning... kan man undgå det?
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:19 #71
Du skal bruge "stripslashes" (mener jeg at det hedder) i PHP..
Jeg slår det lige op..
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:21 #72
Sådan:

$beskrivelse = stripslashes($beskrivelse);
$beskrivelse = str_replace("\r\n", "\\n", $beskrivelse);
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:22 #73
okay... Har aldrig vist hva den bruges til... Men har lige været ved at kigge lidt nu...
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:26 #75
har været derinde at læse men forstod det ikke rigtigt...
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:29 #76
men vil du ikke ligge et svar?
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:38 #77
Joda :-)
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:39 #78
1000 tak for hjælpen... Du har været til meget stor hjælp...
Avatar billede little_kim86 Nybegynder
21. maj 2006 - 22:39 #79
Lagde lige lidt ekstra point i...
Avatar billede thesurfer Nybegynder
21. maj 2006 - 22:42 #80
Mange tak :-)
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