Avatar billede dont Nybegynder
16. marts 2003 - 16:10 Der er 12 kommentarer og
2 løsninger

microsoft DHTML editor control

Er der nogle der kan hjælpe mig med hvordan microsofts DHTML editor virker.
Jeg har fået den til at virke som på:

http://www.html.dk/artikler/00030/SAMPLES/Web/WebApp/builded.htm

men den opdaterer jo ingenting.
Jeg skal bruge at man automatisk åbner en bestemt side i editoren. Når man så har opdateret siden og trykker gem skal opdateringen automatisk gemmes det korrekte sted på serveren, så man for fremtiden ser den nye side når man går ind på den adresse.
Avatar billede dont Nybegynder
16. marts 2003 - 16:11 #1
www.html.dk bliver siden jo ikke gemt. Når man har trykket gem vises bare det man skrev, men det bliver jo bare hentet live hver gang man trykker gem. Det er lidt svært at forklare. Er det til at forstå?
Avatar billede olebole Juniormester
16. marts 2003 - 18:22 #2
<ole>

Du skal være rigtig stærk i JavaScript og god til serverside-scripting, hvis du skal have noget fornuftigt ud af den.
Prøv at søge på Eksperten ... der er hver uge mange spørgsmål til editoren.

/mvh
</bole>
Avatar billede tblaster Nybegynder
18. marts 2003 - 15:33 #3
dont ... hvordan er det du vil gemme din data? I en database eller hva?
Avatar billede dont Nybegynder
18. marts 2003 - 22:18 #4
Hvis du har en idé til hvordan jeg får ovenstående til at virke ved hjælp af database så gemmer jeg mine data i database.
Avatar billede mortrr Praktikant
19. marts 2003 - 00:25 #5
Hent indholdet ud af object med
MinHTML=tbContentElement.DocumentHTML
eller bare
MinHTML=tbContentElement.DOM.body.innerHTML
alt efter hvor fleksibelt du vil kunne bruge koden.

Prop det ind i et textarea
MinTA=document.getElementByID("taHTMLen");
MinTA.value=MinHTML;

Og submit den formular textarea ligger i.
MinTA.form.submit();
Avatar billede dont Nybegynder
20. marts 2003 - 13:57 #6
Til mortrr eller andre.
Kan du give mig en forklaring med eksempler som ovenstående på:
1 jeg konstruerer en side i editoren vha. builded.htm
2 jeg trykker gem
3 nu opdateres en bestemt hjemmeside på serveren med billeder osv.

punkt 1 og 2 er jeg helt med på, men hvordan får jeg kodemæssigt det sidste punkt til at fungere sådan at den opdaterede hjemmeside nu er gemt som html-kode svarende til udseendet fra editoren?
Avatar billede mortrr Praktikant
20. marts 2003 - 14:08 #7
dont -> Har du prøvet at arbejde med databaser før?
Hvis ikke, så find lidt information om emnet på fx netcoders.dk - ASP. her er artikler og source til det.

"Det eneste" du mangler for at gemme siden er at lægge indholdet ind i fx et textarea, poste det til fx en asp eller en php-side og lade den proppe det ned i databasen.

Men hvis det er dit første måde med serverside scripting og databaser, så sæt dig lidt ind i emnet først.
Avatar billede draken Nybegynder
20. marts 2003 - 14:18 #8
ZZZZ Ups, jeg lytter lige med !!!!
Avatar billede tblaster Nybegynder
23. marts 2003 - 11:00 #9
Jeg kan prøve at hjælpe dig udfra den måde jeg selv gør det på. Jeg koder i asp og benytter en database til at lagre min information i!

1. Hent Microsofts DHTML editoer hvis du ikke allerede har gjort det:
http://msdn.microsoft.com/downloads/samples/internet/browser/editcntrl/dhtmsamp.exe

2. Åben dernæst filen builded.htm der ligger i følgende mappe hvis du har udpakket overstående fil:
SAMPLES/Web/WebApp/builded.htm

3. Find følgende i din builded.htm (Er noget af det sidste der er i filen):
<!-- Form for posting updated files back to server -->
<form NAME="UploadForm" action="upload.asp" method="POST">

Her skal du ændre upload.asp til navnet på den side som du vil have der skal modtage teksten du har skrevet. Det skal være en asp side for at de næste koder virker!

4. Du skal nu oprette eller rediger den fil du vil overføre informationerne til eks upload.asp

Uploas.asp:
-----------
<html>
<head>
    <title>Upload</title>
</head>

<%
'--- Nyheder Opret ---
mode=request("mode")
mode1=request.Form("Submit")
if mode="opret" OR mode1="Opret Nyheden" then


'Åbner connection til databasen
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DBQ=" & Server.Mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Password=1234;"

'Hvis brugeren har submittet formularen
    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
   
'Tjecker om felterne er udfyld
    if (Request.Form("title") <> "" AND Request.Form("nyhed") <> "") then
   
'Tilføjer brugeren til databasen
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from nyheder"
    rs.Open strsql, conn, 1, 3
   
'Tilføjer nyheden til databasen
    rs.AddNew
    rs("title") = Server.HTMLEncode(Request("title"))
    rs("nyhed") = Replace(Request("nyhed"), vbCrLf, "<br>")
    rs("dato") = Now()
    rs.update
   
    Response.Write("<strong><font color=000000>Din nyhed er nu postet!</font></strong>")
   
    rs.Close
    set rs = nothing
   
    else


Response.Write"<strong><font color='#ffffff'>Du mangler at udfylde en eller flere felter!</font></strong>"
Response.Write"<script>"
Response.Write"window.setTimeout('history.back();',2000);"
Response.Write"</script>"
   
   
    end if
    end if
%>                   
                        <form action="admin.asp" method="post">
                       
                          <td width="17%"><b>Title <font color="#336699">*</font></b></td>
                          <td width="83%"><input name="title" type="textbox" class="InputTable" size="40"></td>
                        </tr><br>
                        <tr>
                          <td width="17%"><b>Nyhed <font color="#336699">*</font></b></td>
                          <td width="83%">
                          <textarea cols="79" rows="13" name="nyhed"></textarea></td>
                        </tr>
                        </table>
              <p align="center"><a href="builded.htm">Editor</a><br>(Kræver Internet Explorer 5 eller højere) </p>
                      <p>Felterne med en * skal udfyldes!</p>
                      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber4">
              <tr>
                          <td width="100%">
                          <p align="center">
                          <input name="submit" type="submit" class="Button" value="Opret Nyheden">
              <input name="reset" type="reset" class="Button" value="Slet og Start Forfra">
                          <input name="submit" type="submit" class="Button" value="Preview"></td>                       
            </tr>
                      </table>
         
<% '--- Nyheder Editor ---
Elseif mode="editor" then %>
 

            <form action="admin.asp" method="post">
                       
            <td width="17%"><b>Title <font color="#336699">*</font></b></td>
            <td width="83%"><input name="title" type="textbox" class="InputTable" size="40"></td>
            </tr><br>
            <tr>
            <td width="17%"><b>Nyhed <font color="#336699">*</font></b></td>
            <td width="83%">
            <textarea cols="79" rows="13" name="nyhed"><%=Request.Form("UploadDocument")%></textarea></td>
            </tr>
            </table>
            <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber4">
            <tr>
                          <td width="100%">
                          <p align="center">
                          <input name="submit" type="submit" class="Button" value="Opret Nyheden">
                            <input name="reset" type="reset" class="Button" value="Slet og Start Forfra">
                          <input name="submit" type="submit" class="Button" value="Preview"></td>                       
            </tr>
            </table>


<% '--- Forsiden ---
else %>
            <form action="admin.asp" method="post">
                       
            <td width="17%"><b>Title <font color="#336699">*</font></b></td>
            <td width="83%"><input name="title" type="textbox" class="InputTable" size="40"></td>
            </tr><br>
            <tr>
            <td width="17%"><b>Nyhed <font color="#336699">*</font></b></td>
            <td width="83%">
            <textarea cols="79" rows="13" name="nyhed"></textarea></td>
            </tr>
            </table>
            <p align="center"><a href="builded.htm">Editor</a><br>(Kræver Internet Explorer 5 eller højere) </p>
                      <p>Felterne med en * skal udfyldes!</p>
            <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber4">
            <tr>
                          <td width="100%">
                          <p align="center">
                          <input name="submit" type="submit" class="Button" value="Opret Nyheden">
                            <input name="reset" type="reset" class="Button" value="Slet og Start Forfra">
                          <input name="submit" type="submit" class="Button" value="Preview"></td>                       
            </tr>
            </table>
<%
End if
%>

</form>
</body>
</html>
----------

Jeg går ud fra i min uploads.asp at du har kaldt din editor "builded.htm" samt at upload.asp filen og builded.htm filen ligger i samme mappe. Desuden har jeg ladet den database som du skal føre teksten over i kalde db.mdb og den har en talbel: "nyheder" med følgende kolonner:
title
nyhed
dato

5. Du kan nu oploade alle dine sider og databasen og så skal du gerne kunne overføre teksten fra din editor til en database. Hvis du ikke vil have at man skal kunne skrive tekst i en almindelig editor så kan du bare skjule den. Jeg har lavet det sådan at det er meningen at man åbner upload.asp som den første. Så er det mulighed for at skrive en hurtig simpel besked som vi gøre her på eksperten og hvis der er nogen der vil lave noget fancy så kan de åbne editoren ved at trykke på editor.

6. Hvis du skal hente informationerne fra siden kan det gøres med denne kode:
------
<%
' Connection til database
    Set Conn = Server.CreateObject("ADODB.Connection")
    DBPath = "DBQ=" & server.mappath("db.mdb")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};Password=1234 ;" & DBPath

strSQL = "SELECT * FROM nyheder ORDER BY Dato DESC"
set rs = conn.execute(strSQL)

%>
Titel: <%=rs("title")%>
Dato: <%= FormatDateTime(rs("dato"),1)%>
Nyhed: <%=rs("nyhed")%>
-----------

Jeg håber du kan bruge det til noget ... ellers er der da noget du kan starte med og få nogle ideer fra!
Avatar billede tblaster Nybegynder
23. marts 2003 - 11:03 #10
Jeg kom lige til at se at jeg glemte at slette noget fra upload.asp ... følgende:

<input name="submit" type="submit" class="Button" value="Preview">

Skal slettes de par gange den står skrevet. Preview koden ligger ikke i den upload.asp kode du fik. Det vil gøre det mere uoverskuelig. Trykker du på preview vil du altså bare få en fejl ellers vil der ikke ske noget!
Avatar billede dont Nybegynder
23. marts 2003 - 23:51 #11
Jeg kigger lige på det tblaster, så vender jeg tilbage.
Genialt med et eksempel, der virker.
I processen med at omdanne eksemplet, til det jeg skal bruge, lærer jeg hvordan det virker, og jeg kan dermed selv lave det en anden gang.
(Håber jeg kommer dem i forkøbet, der altid får ondt... når nogle efter deres mening modtager for specifik hjælp)
Avatar billede tblaster Nybegynder
24. marts 2003 - 16:59 #12
Det er tid det nemmeste med et eksempel ... og så har man noget at gå udfra og så kan man hurtigt lære det!
Avatar billede dont Nybegynder
27. marts 2003 - 00:53 #13
----------------------------------------------------
<%
minHTML = Request.Form("UploadDocument")
%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("db.mdb")
Conn.Open DSN

strSql = "UPDATE tabel SET række1 = '" & minHTML & "'"
Set rs = Conn.Execute(strSQL)

%>
<%
Response.Redirect("minHTMLside.asp")
%>
--------------------------------------------------------
Avatar billede dont Nybegynder
27. marts 2003 - 00:57 #14
Bare for at gøre det hele mere simpelt (eller mere indviklet) for fremtidige brugere, der skal søger efter samme svar, har jeg tilføjet den smule kode, der skulle til før jeg kunne gemme fra builded.htm, hvilket var det reelle problem.
Det var jo slet ikke så avanceret når det kom til stykket.
Faktisk var det største problem nok at folkene bag mit webhotel kun SAGDE de havde åbnet for skriveadgangen, men.....
Tak til både mortrr og tblaster for svar.
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