Avatar billede mzane Nybegynder
13. februar 2006 - 03:24 Der er 8 kommentarer og
1 løsning

Alt for lang streng

Hej Eksperter(& -inder),

Jeg henter en laaaaang tekst-streng fra min db. Herfra fyrre jeg den over i en Java variabel. Men java melder fejl og når jeg kigger i 'vis kilde' kan jeg se at det sker ved min lange tekst. Jeg tror gerne java vil have en semikolon og ikke kan finde ud at at gå videre selv... hvad gør en klog?

Håber I kan hjælpe.

/Mzane
Avatar billede mzane Nybegynder
13. februar 2006 - 03:25 #1
Her er min function som bliver kaldt med et nr.

Fejl: Et objekt var ventet

---

function FillBox(TnIDR)
        {
            <%
            TeamNameSQL="SELECT TeamNameID, TeamDescription FROM TeamName"
            set rsTeamName = Server.CreateObject("ADODB.Recordset")
            rsTeamName.Open TeamNameSQL, oForb, 1, 3
            %>
            var Found=0;
            <%do while not rsTeamName.EOF%>
                if (TnIDR == "<%=Cint(rsTeamName.Fields("TeamNameID")) %>")
                {
                    Found=1;
                    <%if len(rsTeamName.Fields("TeamDescription"))>10 then%>
                        document.frmHold.TeamDescription.innerText="<%=rsTeamName.Fields("TeamDescription")%>";
                    <%end if%>
                }
                else
                {
                    if (Found==0)
                        {document.frmHold.TeamDescription.innerText="";}
                }
                <%rsTeamName.MoveNext%>
                <%loop%>
            <%
            rsTeamName.Close
            set rsTeamName = Nothing
            %>
        }
Avatar billede mzane Nybegynder
13. februar 2006 - 03:25 #2
...og det er så her det går galt:

document.frmHold.TeamDescription.innerText="<%=rsTeamName.Fields("TeamDescription")%>";
Avatar billede Slettet bruger
13. februar 2006 - 10:09 #3
Er der linieskift i den streng? Det kan javascript ikke lide.
Nu er jeg ikke lige ASP-mand, men prøv at udskifte alle \r med \\r og alle \n med \\n inden du printer det ud.
Avatar billede olebole Juniormester
13. februar 2006 - 14:30 #4
<ole>

Problemet er heldigvis hverken et ASP- eller Java-problem - men et JavaScript-problem (Java og JavaScript har ikke stort andet end fire bogstaver tilfælles).

Hvad er 'frmHold' og 'TeamDescription' for elementer? Hvis 'TeamDescription' er et formfelt (f.eks. et textarea), skal du skrive:
    document.frmHold.TeamDescription.value = "<%=rsTeamName.Fields("TeamDescription")%>";

I den forbindelse skal du i strengen skifte (i denne rækkefølge):
1) 'vbCrLf' ud med '\\r\\n'
2) 'vbCr' ud med '\\r'
3) 'vbLf' ud med '\\n'

/mvh
</bole>
Avatar billede mzane Nybegynder
13. februar 2006 - 15:13 #5
Hej og tak for forslag,

Der er dog ikke noget der helt hjælper endnu.

--> Ole
Jeg kan har indtil nu brugt
document.frmHold.TeamDescription.InnerText = "<%=rsTeamName.Fields("TeamDescription")%>";
(Altså InnerText istedet for value), hvilket virker helt fint.
Problemet kommer når asp'en øh afgiver? sin værdi til Javascriptet, så er teksten for lang... lidt svært at forklare synes jeg, sorry.

Jeg har sat et billede op af min "vis kildekode":
http://www.vi39swim.dk/JavaScrFejl.gif
Avatar billede roenving Novice
13. februar 2006 - 15:18 #6
Det ser da bare ud til, at teksten er blevet længere end det, Notepad kan vise, men det skulle bestemt ikke være farligt !-)
Avatar billede olebole Juniormester
13. februar 2006 - 15:30 #7
Hvad du har begået af fejl hidtil, skal vel ikke bestemme, hvad du skal begå af fejl i fremtiden. At bruge 'innerText' i stedet for 'value' er en fejl - og kan iøvrigt kun tolkes af en enkelt browser på markedet.

Hvor i alverden kommer de <br> fra?
Mon ikke du loader teksten ind i et textarea, fordi teksten skal editeres? Så er det da ikke fikst at have HTML-breaks i koden.
I det hele taget, så indsættes <br> først, når man skriver ud til dokumentet. I DB'en er teksten stadig formateret med 'vbCrLf' som linjeskift.

Det er i hverfald måden, man normalt laver professionelle DB-løsninger på  :)
Avatar billede mzane Nybegynder
13. februar 2006 - 15:48 #8
Det er helt rigtigt, Ole.
<br> kommer fra en string jeg har gemt i db'en. De skal selvfølgelig lige have en tur, men det var dog ikke lige der problemet lå, så derfor lod jeg det ligge.
Jeg vil huske at bruge value istedet for innerText, Tak for det.

Jeg må samtidigt også undskylde, for jeg har egentlig selv fundet ud af fejlen... og jeg tør næsten ikke skrive det... here goes:
Den tekst jeg henter fra db'en indeholdte "  !!!!

Sorry,
I må gerne smide et svar, så kan I få point, som tak for jeres tid.

Mzane
Avatar billede olebole Juniormester
13. februar 2006 - 15:54 #9
Hehe ... alt forladt  ;D

Bemærk dog, at når du på et tidspunkt fjerner dine <br>, vil du sikkert have et 'vbCrLf' (eller '\r\n') liggende på deres plads - og så er det vigtigt med den udskiftning, jeg omtalte ovenfor  ;o)
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