11. oktober 2003 - 19:54
Der er
23 kommentarer og 1 løsning
Indhold i function indeholder <br>
Hejsa ... Jeg har et udtræk fra PHP, der sætter noget ind i en JS funktion.. Det kan fx se sådan her ud: onclick="funktion('ting1','ting2','ting3<br />fortsat')" Når siden køres, ser det hele sådan her ud: onclick="funktion('ting1','ting2','ting3 fortsat')" Kan man ikke køre en "steril" afvikling, af sådan en funktion? =)
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
11. oktober 2003 - 20:05
#1
Du vil ha' det hele på en linie? onclick="funktion('ting1','ting2','ting3', 'fortsat')" ?????????
11. oktober 2003 - 20:06
#2
Nej... Jeg vil have det til at se sådan her ud: onclick="funktion('ting1','ting2','ting3<br />fortsat')"
11. oktober 2003 - 20:11
#3
echo nl2br($dinvar); evt. Men hvordan henter du di nvar fra PHP?
11. oktober 2003 - 20:13
#4
Har også prøvet med nl2br, men med ligefedt resultat. Well, sagen, hvorfor hentes der fra PHP, kan da være underordnet...? =)
11. oktober 2003 - 20:15
#5
Næh, fordi det er jo PHP som laver outputtet. Anyway, prøv: $dinvar = return ereg_replace("(\r\n|\n\r|\n|\r)", "<br />", $dinvar); echo $dinvar;
11. oktober 2003 - 20:16
#6
Hov! :O) (bruger det i en funktion!) $dinvar = ereg_replace("(\r\n|\n\r|\n|\r)", "<br />", $dinvar); echo $dinvar;
11. oktober 2003 - 20:21
#7
<?php function br($var) { return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br />", $var); } $str = 'Hov du! Hvad er nu det? Virker det????'; echo br($str); ?> Og forresten så er der forskel på: onclick="funktion('ting1','ting2','ting3', 'fortsat')" og onclick="funktion('ting1','ting2','ting3<br />fortsat')" Du mener vel at det skal se så'n ud: onclick="funktion('ting1','ting2','ting3<br />', 'fortsat')" ????????
11. oktober 2003 - 20:23
#8
Jeg har aldrig nogen sinde skrevet: onclick="funktion('ting1','ting2','ting3<br />', 'fortsat')" eller onclick="funktion('ting1','ting2','ting3', 'fortsat')" ...så jeg ved ikke lige, hvor du får den idé fra :) Men jeg vil lige prøve mig frem, med det du har foreslået :)
11. oktober 2003 - 22:17
#9
Hmm .. det virker udemærket, lige indtil at der kommer to "\n" .. Det virker så hvis man indsætter \n\n i replace.. sådan her: return ereg_replace("(\r\n|\n\r|\n|\r|\n\n)+", "<br />", $var); Men lidt irriterende er det vel... Nogen løsning?
11. oktober 2003 - 22:22
#10
$dinvar = ereg_replace("(\r\n|\n\r|\n|\r)+", "<br />", $dinvar); Ja, tænkte du ikke havde mere end en \n så jeg brugte ikke +, som betyder x antal :O) Og så lige et svar! :O)
11. oktober 2003 - 22:24
#11
Nåh, jeg havde jo svaret! Når der bruges flere forskellige løsninger, ( \r\n og \n\r og \n og \r ) er det fordi forskellige browsere opfatter/laver dem forskelligt, linieskift i et textarea.
11. oktober 2003 - 22:26
#12
Ja .. takker .. Lige en sidste ting, som er lidt irriterende :) Hele idéen i det, er at smide indholdet af denne her funktion over i nogle tekstboxe .. I det her tilfælde i et textarea ... Er der så en måde - hold fast ;) - at få de her <br /> til at indrette sig efter textboxens "normer" igen, så den viser linieskift istedet for <br />? Du har egentlig svaret på det du skulle, så du får point :)
11. oktober 2003 - 22:30
#13
Du echo'er bare din var. Hvis der er et \n i det du echo'er, vil der automatisk blive lavet et linieskift
11. oktober 2003 - 22:31
#14
Og linieskift kan jo kun vises i et textarea! En tekstbox er jo "straight"
11. oktober 2003 - 22:33
#15
Ja .. Men jeg mener nu: document.forms.textareafelt.value=indholdmedbr Sådan bliver den sat ind fra den forrige funktion ... Og den indeholder jo ikke \n ... men kun <br />. Nogen forslag?
11. oktober 2003 - 22:37
#16
hmhmhmhm, måske så'n: $dinvar = ereg_replace("<br />", "\\n", $dinvar); Men er det ikke nemmere at bruge PHP'en til at vise indholdet?
11. oktober 2003 - 22:39
#17
Jow, men det er en del af et større projekt, jeg har gang i... Hvornår skal den php ting, så sættes ind? Det hele foregår jo i "realtime", og PHP bliver ikke kørt efter siden er vist jo. Dvs det SKAL være op til JS, at få lavet <br /> om til \n ... Hvis overhovedet muligt ...?
11. oktober 2003 - 22:43
#18
Ja, men når du vil vise det igen, kan du jo bruge php: <?php function br($var) { return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br />", $var); } $str = 'Hov du! Hvad er nu det? Virker det????'; echo br($str); function back($var) { return ereg_replace("<br />", "\n", $var); } ?> <form> <textarea cols="20" rows="10"><?php echo br($str); ?></textarea> <textarea cols="20" rows="10"><?php echo back(br($str)); ?></textarea> </form>
11. oktober 2003 - 22:52
#19
Ja, men problemet er, at siden bliver ikke opdateret overhovedet, da al teksten bliver sat ind direkte i textarea vha. Javascript.. eksempel: <? $indhold = "mumletekst fra db med masser af \n"; function br($var) { return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br />", $var); } ?> function indsaetitextarea(indhold) { document.forms.textareafelt.value=indhold } <a href="java script:indsaetitextarea('<?=br($indhold);?>')">hej</a> <textarea name="textarea">(Her bliver teksten så vist med en masse synlige <br />)</textarea>
11. oktober 2003 - 22:56
#20
og navnet på textareaet skulle så være textareafelt .. mindre detalje
11. oktober 2003 - 23:18
#21
hmm, hvornår vil du så egentlig vise <br />? <html><head> <script type="text/javascript"> function indsaet(indhold) { document.forms.minform.mitfelt.value=indhold; } </script> </head> <body> <?php function br($var) { return ereg_replace("(\r\n|\n\r|\n|\r)+", "<br />", $var); } $str = 'Hov du! Hvad er nu det? Virker det????'; echo br($str); function back($var) { return ereg_replace("<br />", "\\n", $var); } ?> <a href="java script:indsaet('<?php echo back(br($str)); ?>');">Test</a><p> <form name="minform"> <textarea cols="50" rows="10"><?php echo br($str); ?></textarea> <textarea cols="50" rows="10" name="mitfelt"></textarea> </form> </body></html>
11. oktober 2003 - 23:20
#22
Jeg vil vise det senere et andet sted ... Men okay .. takker.
11. oktober 2003 - 23:25
#23
nåh, ok. Hvis du blot har sin streng, kan du jo bruge function back2($var) { return ereg_replace("(\r\n|\n\r|\n|\r)+", "\\n", $var); } ?> <a href="java script:indsaet('<?php echo back2($str); ?>');">Test</a><p> for at erstatte alle linieskift med et enkelt
11. oktober 2003 - 23:33
#24
Jeg fandt ud af det på din måde, men ikke den måde du foreslog: ereg_replace("(\r\n|\n\r|\n|\r)", "\\n", $var); Igen, tak :)
Vi tilbyder markedets bedste kurser inden for webudvikling