Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 14:22 Der er 10 kommentarer og
1 løsning

problemer med udskrivning af en streng

Er det muligt at få javascript til at udskrive en tekst der ser nogenlunde sådan her ud:
<div id='box' style='display: none;'>
  <div id='bg_pic'></div>
  <div id='bg_tekst'></div>
  <div id='pic'>
    <input style='height: 31px; width: 31px;' type='image' src='images/knap_rund_help_off.gif' onclick='return false;' onmouseover='this.src="images/knap_rund_help_over.gif"' onmouseout='this.src="images/knap_rund_help_off.gif"'>
  </div>
  <div id='tekst'>
    <?php
      include 'help/help_eksport.php';
    ?>
  </div>
  <div id='top_luk'>
    <p style='text-align: right;'><a href='#' class='synsdata_link' onclick='vis_tekst();'>luk</a></p>
  </div>
</div>

Jeg har forsøgt, men for en javascript fejl der siger: "strengkonstanten er uafsluttet"
Kan det overhovedet lade sig gøre?
Avatar billede olebole Juniormester
31. januar 2007 - 14:52 #1
<ole>

Hvor skal strengen skrives? Der findes ikke en valid metode til at indskrive elementer i form af strenge - men det kan f.eks. lade sig gøre i et textarea.

Lad høre ...  =)

/mvh
</bole>
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 14:58 #2
den skal skrives vha innerHTML.. og inden du slår mig oven i hovedet fordi innerHTML er noget snavs, så vil jeg lige sige at det er hvad jeg har at arbejde med.. hvis ikke du kan foreslå nogen alternativer

Den streng der skal sættes ind, skal placeres i en <div> eller en <table>
Avatar billede olebole Juniormester
31. januar 2007 - 15:06 #3
Jamen, det giver da ikke mening at forsøge at indskrive PHP-kode via JS. Hvad skal du bruge det til - og hvordan?  =)
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 15:17 #4
hehe php koden er ikke mening skulle være med..
Det er meningen at der skal hentes noget data fra en database som så skal skrives på skærm og det er gennemtvunget at der skal være html-kode i den tekst der lægges i databasen.
Det skal så hentes med noget der minder om AJAX, men ikke helt er det da det nu ikke er rå data der sendes og det absolut ikke er XML!

Jeg har lige et andet lidt bedre eksempel på hvordan strengen kan se ud..
<table>
  <tr>
    <td>
      <p>Overskrift her...</p></td>
  </tr>
  <tr>
    <td>
      <p>Selve hovedteksten her..</p>
      <p>måske med et billede eller to..</p>
      <img src="" alt="" title=""></td>
  </tr>
  <tr>
    <td><p><a href="#" onclick="">Link til forrige side..</a></p></td>
    <td><p><a href="#" onclick="">Link til næste side..</a></p></td>
  </tr>
</table>
Avatar billede olebole Juniormester
31. januar 2007 - 15:25 #5
I AJAX behøver man nu ikke at formatere retur-data som XML ... jeg bruger f.eks. selv JSON (JavaScript Object Notation)  ;o)

Dit problem består i linjebrud i strengen. Fjern alle linjebrud, så virker det formodentligt.

- og naturligvis bør du lave det med DOM i stedet for med innerHTML ... ikke mindst fordi din kode er ubrugelig under XHTML - og fordi man stort set altid har mulighed for at bruge DOM  ;o)
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 15:35 #6
jep, det har du selvf. ret i, men hvordan kan det lade sig gøre at lave det med DOM, når nu teksten fra databasen ser ud som det jeg skrev i min sidste kommentar..?

Og hvordan kan man nemmest fjerne alle linjebrud fra den tekst..? det kan godt laves i php hvis det er nemmere end i javascript... hvis du kan give et hint til hvordan ville det være alletiders ellers opretter jeg et spørgsmål i php-sektionen ang. det problem
Avatar billede olebole Juniormester
31. januar 2007 - 15:46 #7
Jamen, så er den grundlæggende fejl, at du lægger markup i en DB. Det er et absolut no-go! Du bør allerhøjst gemme simpel formatering ... <b>, <i>, etc.
Hvad vil du f.eks. gøre i tilfælde af designskift - eller udviklinger i markup-standarden?

Løsning på problemet (omend den ikke løser dit meget alvorlige problem med formaterede data i DB'en):
$str = str_replace("\r", "", $str);
$str = str_replace("\n", "", $str);

Er én mulighed - og formodentligt lidt hurtigere end preg_replace, men ellers er den også en mulighed
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 15:51 #8
jeg er fuldstændig enig med dig i at markup ikke hører til i DB, men det er desværre ikke mig der bestemmer det..
mht hvad jeg vil gøre.. jeg vil grine højt af min chef og kræve en voldsom overbetaling for at rette op på fejl der skyldes hans tåbelige beslutninger ;o)

Jeg kan godt forsøge det med str_replace(), det er jo nok det nemmeste, når det nu ikke kan gøres anderledes..
Avatar billede olebole Juniormester
31. januar 2007 - 15:56 #9
JavaScript kan ikke få noget ud af en brudt streng, så der er ikke andre muligheder end at ændre den, inden JS skal røre den ... og så er der jo ingen grund til at transportere undøvendige white-space tegn over WWW  ;o)

Jeg lægger lige et svar, hvis du kan bruge svarene til noget  =)
Avatar billede sw_red_6 Nybegynder
01. februar 2007 - 09:12 #10
det kunne bruges.. du forklarede hvorfor det ikke virker og kom med forslag til en løsning.
Avatar billede olebole Juniormester
01. februar 2007 - 15:30 #11
Jeg takker behørigt for points  ;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