Avatar billede daniel_d Nybegynder
28. februar 2002 - 18:37 Der er 12 kommentarer og
1 løsning

Hvad er der galt her? hjælp ønskes hurtigt,,,,,,

Jeg er ved at banke en onlineeditor sammen, og har problemer med at få gemt lortet korrekt. Når jeg trykker på gemknappen skal den smide indholdet over i et andet dokument som så gemmer det i databasen. Eneste problem er at den gemmer det i basen som "undefined". Det er altså som om at den ikke har fundet indholdet som godt nok ligger i en Iframe, men det skulle da være muligt... ellere rettere - det ER muligt. Nogen der kan hjælpe???

Herunder er koden. Dog har jeg fjernet alt det overflødige som blot ville gøre det uoverskueligt at se sig igennem koden...

<%@ language="JScript" LCID=1030 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">

<title>SideEditor</title>
<link rel="stylesheet" type="text/css" href="../default.css">
<!-- Her defineres stylen på knapperne -->
<script language="JavaScript1.2">
var cssdefinition='<style>\n.menuitems{\nborder:2.5px solid #D8D0C8;\n}\n\n.menuitems a{\ntext-decoration:none;\cursor:hand\n;\ncolor:black;\n}\n<\/style>'

if (document.all||document.getElementById)
document.write(cssdefinition)

function over_effect(e,state, bgcolor){
if (document.all)
source4=event.srcElement
else if (document.getElementById)
source4=e.target
if (source4.className=="menuitems"){
source4.style.borderStyle=state
source4.style.backgroundColor=bgcolor
}
else{
while(source4.tagName!="DIV"){
source4=document.getElementById? source4.parentNode : source4.parentElement
if (source4.className=="menuitems"){
source4.style.borderStyle=state
source4.style.backgroundColor=bgcolor
}
}
}
}
</script>
<!-- Her er scriptet til "tryk her for at rette i siden -->
<script for="btnDesign" event="onclick">
  targetDoc = document.frames(0).document;
  if (targetDoc.designMode == "On")
    targetDoc.designMode = "Off";
  else
    targetDoc.designMode = "On";
</script>
<!-- Funktioner til knapperne -->
<script>
function gem(){
    document.forms[0].indhold.value = foo.innerHTML;
    document.forms[0].submit();
}
</script>
</head>

<body topmargin="0" leftmargin="0">

<form action="admin_ret.asp" method="post" style="display:none">
<input type="text" name="indhold"><input type="text" name="id" value="<%=Request.QueryString('ID')%>">
</form>

<div unselectable="on" align=left>
<table width="100%" cellspacing="2" cellpadding="0" border="0" class="tools" bgcolor="#D8D0C8" style="border-left:1 solid #000000;border-right:1 solid #000000;">
<tr>
    <td><input type="button" value="Gem" style="width:75; height:23;" onClick='gem()'></td>
    <td width="100%">&nbsp;</td>   
</tr>
</div>
</table>

<iframe id="foo" name="indhold" src="vis.asp?ID=<%=Request.QueryString('ID')%>" style="border: 1 solid #000000; width:100%; height:500px" frameborder="0" ></iframe>
 
</body>
Avatar billede grunken Nybegynder
28. februar 2002 - 18:48 #1
document.FORMNAVN.indhold.value = foo.innerHTML;
document.FORMNAVN.submit();

er mere korrekt

så giv lige din form et navn :)

og hvofor kan du ikke bare bruge et tekstvindue ???
Avatar billede daniel_d Nybegynder
28. februar 2002 - 18:51 #2
det ved jeg ikke... Kán man det når man bruger database tíl at hente indholdet ind på siden ?

Prøver lige om dit forslag virker
Avatar billede grunken Nybegynder
28. februar 2002 - 18:53 #3
det gør du osse ?, hvofor gemmer du så ikke bare teksten derfra ???

altså bare:

document.FORMNAVN.submit();
Avatar billede grunken Nybegynder
28. februar 2002 - 18:54 #4
som jeg umiddelbart kan ser er det jo samme tekst der står i både dit tekstfelt, og i din iframe ???
Avatar billede daniel_d Nybegynder
28. februar 2002 - 18:55 #5
Mener det er fordi den ikke skal gemme hele sidens indhold, men kun den formaterede tekst i BODYEN. Skal man så ikke bruge innerHTML da ?
Avatar billede daniel_d Nybegynder
28. februar 2002 - 18:57 #6
gav min form navn: Name="smid"

og i min function skrev jeg således:

<script>
function gem(){
    document.smid.indhold.value = document.foo.innerHTML;
    document.smid.submit();
}
</script>

Desværre gør det ingen forskel
Avatar billede daniel_d Nybegynder
28. februar 2002 - 19:00 #7
Den gemmer stadig som undefined når det ender i databasen
Avatar billede daniel_d Nybegynder
28. februar 2002 - 19:07 #8
Jeg har også givet formen en id=smid" - men altså som sagt uden resultat. Jeg kan sgu ikke lige gennemskue hvad der er galt.
Avatar billede cms Nybegynder
28. februar 2002 - 19:17 #9
du skal bruge foo.body.innerHTML !
Avatar billede cms Nybegynder
28. februar 2002 - 19:17 #10
eller foo.document.body.innerHTML
Avatar billede daniel_d Nybegynder
28. februar 2002 - 19:18 #11
Jeg har fundet ud af at problemet ligger i = foo.innerHTML; for hvis man istedet sætter den til = ("Hej") gemmer den hej i databasen

så problemet må ligger omkring iframen og denne streng
Avatar billede daniel_d Nybegynder
28. februar 2002 - 19:20 #12
Hallo mand - det virker sgu. foo.document.body.innerHTML var det korrekte svar der løste mit problem. - Jeg takker og aflevere pointene til CMS
Avatar billede cms Nybegynder
28. februar 2002 - 19:32 #13
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