Avatar billede kristiankogut Nybegynder
22. maj 2006 - 23:48 Der er 23 kommentarer og
1 løsning

Formater tekst med java

Hej Jeg har følgende

* er måske den hingst med stærkeste afstamning til dato * mor, er legendariske Julie Halsnæs EFJ 8003, en af få fjordhopper med Guldmedalje for afkom. * far er den lige så kendte Ørjar EFJH 690, 7,9+medalje for afkom * har i 2005 bestået materialprøven som nr. 3 ud af 5 med 7,64 points * første årgang tegner godt. Ved følskuet i Thorsø gik fløjen til et Granit-hoppeføl med 9 i helhed

------------------------------
Jeg vil gerne have javaScript til at formatere om til ::

<ul>
<li>er måske den hingst med stærkeste afstamning til dato</li>
<li> mor, er legendariske Ju...</li>
<li> far er den lige...afkom</li>
<li> har i..ints </li>
<li> f.elhed</li>
</ul

altså.. ved hver stjerne * i teksten lave et <li> tekst <li>
Avatar billede softspot Forsker
22. maj 2006 - 23:53 #1
Noget i stil med dette:

var arrTekster = tekster.split("*");
var strListe = "<ul>";
for(var i = 0; i < arrTekster.length; i++) {
  strListe += "<li>" + arrTekster[i] + "</li>";
}
strListe += "</ul>";

tekster indeholder din tekst hvor de enkelte linier er adskildt med *
Avatar billede roenving Novice
23. maj 2006 - 00:00 #2
-- men så skal en evt. start-* fjernes først !-)
Avatar billede softspot Forsker
23. maj 2006 - 00:08 #3
Så måske noget i stil med:

var tekster = "* blasd * asdasda * as dasd asd * asdasdas dasd";
var arrTekster = tekster.split("*");
var strListe = "<ul>";
var re = /^[/w]*$/g;

for(var i = 0; i < arrTekster.length; i++) {
  if(!re.test(arrTekster[i]))
    strListe += "<li>" + arrTekster[i] + "</li>";
}
strListe += "</ul>";
Avatar billede roenving Novice
23. maj 2006 - 00:16 #4
Hvad betyder [/w] ?-)
Avatar billede softspot Forsker
23. maj 2006 - 00:18 #5
Det var et forsøg på at teste for whitespace-karakterer, altså tomme strenge, men åbenbart ikke korrekt (selvom det så ud til at fungere).
Avatar billede softspot Forsker
23. maj 2006 - 00:18 #6
...men det skulle nok have været \w i stedet :)
Avatar billede roenving Novice
23. maj 2006 - 00:21 #7
-- og jeg spørger præcis fordi9 det faktisk ser ud til at fungere, og her var en tegn-kombination, jeg ikke kendte på forhånd !-)
Avatar billede roenving Novice
23. maj 2006 - 00:23 #8
\w betyder word-characters, og da du spørger negativt kan det være, at det er ækvivalent i firkantede paranteser, jeg er bare aldrig stødt ind i den før ...

\s betyder whitespace, men den tester netop ikke for tomme strenge !-)
Avatar billede softspot Forsker
23. maj 2006 - 00:27 #9
Det var ikke tiltænkt, men blot en fejl i semantikken (fordi jeg ikke er en haj til reg.exp - derfor også den lidt spørgende formulering ;-)).
Avatar billede roenving Novice
23. maj 2006 - 00:30 #10
-- men det er nu ret rart at have fungerende tingester i sin kode ...

-- så det må vel kaldes et pletskud !-)
Avatar billede softspot Forsker
23. maj 2006 - 00:32 #11
selv blinde høns finder korn :)
Avatar billede kristiankogut Nybegynder
23. maj 2006 - 20:59 #12
Hvad skal der stå før?? for jeg kan ikke javascript overhoved...

Så det er til at copy/paste for mig..
Avatar billede softspot Forsker
23. maj 2006 - 21:26 #13
Jeg har flg. eksempel (brugt til test):

<html>

<head>

</head>

<body>
<script type="text/javascript">
var tekster = "* er måske den hingst med stærkeste afstamning til dato * mor, er legendariske "
            + "Julie Halsnæs EFJ 8003, en af få fjordhopper med Guldmedalje for afkom. * far er "
            + "den lige så kendte Ørjar EFJH 690, 7,9+medalje for afkom * har i 2005 bestået "
            + "materialprøven som nr. 3 ud af 5 med 7,64 points * første årgang tegner godt. "
            + "Ved følskuet i Thorsø gik fløjen til et Granit-hoppeføl med 9 i helhed";
var arrTekster = tekster.split("*");
var strListe = "<ul>";
var re = /^[\w]*$/g;

for(var i = 0; i < arrTekster.length; i++) {
  if(!re.test(arrTekster[i]))
    strListe += "<li>" + arrTekster[i] + "</li>";
}
strListe += "</ul>";

document.write(strListe);
</script>
</body>

</html>
Avatar billede kristiankogut Nybegynder
23. maj 2006 - 22:48 #14
Nu har jeg siddet og leget med det igen..
og jeg har denne funcion som det skal lægges ind i, men jeg kan ikke finde ud af det.

   
        if(!empty($hest['beskrivelse']))
        echo "<strong>Beskrivelse: </strong><br/>".$hest['beskrivelse']."</li>";
hvor 'beskrivelse' er lig med indholdet i var tekster.

javascriptet SKAL ligge inde i function'en ellers virker functionen ikke med det andet jeg har lavet (ikke posteret her)

Kan det lade sig gøre?
Avatar billede softspot Forsker
23. maj 2006 - 22:56 #15
Hmmm... det lyder nu da som om du har mere brug for en PHP-funktion i stedet for en javascript-funktion (altså en funktion som udføres på serveren og ikke på klienten).

Hvis dette ikke er tilfældet må du lige prøve at poste mere kode til den side...
Avatar billede kristiankogut Nybegynder
23. maj 2006 - 23:04 #16
<?require("src/top.php");?>


<?php
//MySQL indstillinger
$mysql_ip        = "localhost"; //MySQL serveren IP adresse.
$mysql_usr    = "x"; //MySQL bruger.
$mysql_pwd    = "x"; //MySQL kodeord.
$mysql_db        = "x"; //MySQL databasen som skal bruges.

//Forbinder til mySQL server
mysql_connect($mysql_ip, $mysql_usr, $mysql_pwd) or die(mysql_error());
mysql_select_db($mysql_db) or die(mysql_error());
   
function kartotek($name)
    {
    $result = mysql_query("SELECT * FROM heste WHERE navn='".addslashes($name)."' LIMIT 1");
    if(mysql_num_rows($result)==1)
    {
    $hest = mysql_fetch_assoc($result);
    echo "<p><h2>";
        if(!empty($hest['navn']))
        echo $hest['navn'];
       
        if(!empty($hest['nummer']))
        echo " - ".$hest['nummer'];
    echo "</h2></p>";

    echo "<p>";
        if(!empty($hest['far']))
        echo "<strong>Far: </strong>".$hest['far'] ;
       
        if(!empty($hest['farlink']))
        echo " - <a href='".$hest['farlink']."' target='_blank' title='Nyt vindue'><em>link</em></a>";
    echo "<br/>";   
        if(!empty($hest['mor']))
        echo "<strong>Mor: </strong>".$hest['mor'];

   
        if(!empty($hest['morlink']))
        echo " - <a href='".$hest['morlink']."' target='_blank' title='Nyt vindue'><em>link</em></a>";
      echo "<br/>";       
        if(!empty($hest['morfar']))
        echo "<strong>Morfar: </strong>".$hest['morfar'];

   
        if(!empty($hest['morfarlink']))
        echo " - <a href=".$hest['morfarlink']."' target='_blank' title='Nyt vindue'><em>link</em></a>";
    echo "</p>";
    echo "<p>";
        if(!empty($hest['billedsti']))
        echo "<IMG src='".$hest['billedsti']."' width='500' height='375'><br/>";
    echo "</p>";
    echo "<p>";       
        if(!empty($hest['maal']))
        echo "<strong>M&#229;l: </strong>".$hest['maal']."<br>";

   
        if(!empty($hest['kaaringstal']))
        echo "<strong>K&#229;reingstal: </strong>".$hest['kaaringstal']."";
    echo "</p>";
   
   
        if(!empty($hest['kaaringsbeskrivelse']))
        echo "<strong>K&#229;reingsbeskrivelse: </strong><br/>".$hest['kaaringsbeskrivelse']."<br/>";

   
   
        if(!empty($hest['beskrivelse']))
        echo "<strong>Beskrivelse: </strong><br/>".$hest['beskrivelse']."</li>";

   
    echo "<hr>";   
    }
    }
   
    ?>


<h1>Hingste</h1><br />

<?php kartotek("Unik"); ?>
<?php kartotek("Tilde"); ?>
<?php kartotek("Granit"); ?>


--------------------------------
Det overstående virker, men jeg mangler at udtrækket fra heste "  .$hest['beskrivelse'] "

    *  er måske den hingst med stærkeste afstamning til dato
    * mor, er legendariske Julie Halsnæs EFJ 8003, en af få fjordhopper med Guldmedalje for afkom.
    * far er den lige så kendte Ørjar EFJH 690, 7,9+medalje for afkom
    * har i 2005 bestået materialprøven som nr. 3 ud af 5 med 7,64 points
    * første årgang tegner godt. Ved følskuet i Thorsø gik fløjen til et Granit-hoppeføl med 9 i helhed

bliver lavet om som beskrevet øverst
Avatar billede kristiankogut Nybegynder
23. maj 2006 - 23:10 #17
Hey.. nu virker det... lavet om til

   
   
        if(!empty($hest['beskrivelse']))
        echo "<strong>Beskrivelse: </strong><br/>
        <script type='text/javascript'>
            var tekster = '".$hest['beskrivelse']."';
            var arrTekster = tekster.split('*');
            var strListe = '<ul>';
                var re = /^[\w]*$/g;
               
                for(var i = 0; i < arrTekster.length; i++) {
                          if(!re.test(arrTekster[i]))
                          strListe += '<li>' + arrTekster[i] + '</li>';
                          }
                          strListe += '</ul>';
                     
                      document.write(strListe);
                  </script>";
Avatar billede kristiankogut Nybegynder
23. maj 2006 - 23:11 #18
kan det evt. gøres korter med php?
Avatar billede softspot Forsker
23. maj 2006 - 23:14 #19
Det kan gøres mere struktureret og givetvis mere gennemskueligt i PHP, så det vil jeg da anbefale dig at gøre i stedet. Jeg kan desværre ikke hjælpe dig med PHP, så enten kommer roenving forbi og løser den for dig eller du flytter spørgsmålet over i PHP-kategorien...
Avatar billede kristiankogut Nybegynder
23. maj 2006 - 23:26 #20
ej.. jeg holder mig til javascript...

Prøv at se www.frolunde.dk/_hingste.php
og så koden

hvorfor vises beskrivelsen det ene sted og ikke det andet sted??
Avatar billede kristiankogut Nybegynder
23. maj 2006 - 23:29 #21
aha.. det var fordi der var et linieskift i den skrevne tekst til sidst og derfor ødelægger koden..

Kan man så ikke kode sig ud af den ikke skal tage høje for linieskift??
Avatar billede softspot Forsker
24. maj 2006 - 01:18 #22
Det tror jeg til gengæld du skal klare på serveren idet du aflæser værdien af $hest['beskrivelse']... er der ikke en eller anden replace-funktion i PHP som kan omsætte linieskift til teksten "<br>"? Det er for at undgå at teksten ombrydes i variablen, for der må ikke være linieskift i en javascript-variabel (såvidt jeg ved).
Avatar billede kristiankogut Nybegynder
06. juni 2010 - 13:07 #23
Jeg har glemt at lukke spørgsmålet. Vil du smide et svar. Jeg fik det til at virke i sin tid.. Mange tak for hjælpen.
Avatar billede softspot Forsker
06. juni 2010 - 20:30 #24
Kommer her :-)
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