Avatar billede webber89 Nybegynder
31. juli 2007 - 19:14 Der er 11 kommentarer og
1 løsning

Hjælp til form

hej
jeg er ved at lave en slags gæstebog. her vil jeg gerne kunne lave funktioner som: fed, kursiv skrift osv.
jeg ved ikke hvordan det skal laves men tror det skal gøres med javascript. men kan altså ikke rigtigt noget java så ville sætte stor pris på et færdigt script.
Avatar billede w13 Novice
01. august 2007 - 03:06 #1
Se, det er ikke helt så ligetil. F.eks. kan du ikke lave fed skrift i et almindeligt textarea eller tekstfelt. Ofte vil man nok enten bruge en div eller et IFrame, men i følge min erfaring virker det med div'et kun i IE. Hvis du så laver et IFrame og sætter document.getElementById("Iframeid").contentWindow.document.designMode="on";

Så kan du bruge koden:

execCommand("Bold",false)
execCommand("Italic",false)
execCommand("Underline",false)

til at sætte fed, kursiv og understreget.

Skriv evt. noget af din kode her, så kan jeg måske guide dig lidt. =)

(Java og JavaScript er i øvrigt 2 forskellige sprog. :)
Avatar billede webber89 Nybegynder
01. august 2007 - 14:14 #2
øm har kun en form med et tekstfelt da det skal postes til en mysql database.
Jeg er ikke helt med på hvordan du mener det skal laves med Iframe og har heller ikke særlig erfaring med Iframe.
kan du hjælpe mig lidt
Avatar billede w13 Novice
01. august 2007 - 15:06 #3
Følgende er testet og virker:
--------------------------------------------
<form method="post" submit="submitfunction">
<p><a title="Fed" href="java script:void(0)" onclick="ExecCommand('Bold',false)">Fed</a>
<a title="Kursiv" href="java script:void(0)" onclick="ExecCommand('Italic',false)">Kursiv</a>
<a title="Understreget" href="java script:void(0)" onclick="ExecCommand('Underline',false)">Understreget</a></p>

<p><iframe id="wysiwyg" frameborder="0" style="border:1px solid #000000" contentEditable="true"></iframe></p>

<p><input id="editor" type="hidden" name="besked"></p>

<p><input type="submit" value="Send"></p>
</form>

<script language="JavaScript" type="text/javascript">
document.getElementById("wysiwyg").contentWindow.document.designMode="on"

function ExecCommand(a,b,c) {
    document.getElementById("wysiwyg").contentWindow.focus();
    document.getElementById("wysiwyg").contentWindow.document.execCommand(a,b,c);
}

function submitfunction() { document.getElementById("editor").value=document.getElementById("wysiwyg").contentWindow.document.body.innerHTML; return true }
</script>
-----------------------------------------------
Som sagt kan du ikke bruge fed skrift i dit normale tekstfelt, men vi skal jo bruge det i formen, når vi skal gemme resultatet. Derfor bruger vi et iframe, som vi redigerer i, og når formen submittes, så overføres indholdet fra iframet til det skjulte tekstfelt.
Avatar billede webber89 Nybegynder
01. august 2007 - 22:29 #4
Hej tak for koden men har lidt problemer med at få det til at virke.
her er koden:


<?                               
if(isset($_POST["besked"]) && $_POST["besked"] != ""){                               
$besked = $_POST["besked"];
mysql_query("INSERT INTO besked (besked) VALUES ('$besked')");
}
else {
?>
<table align="center" colspan="4">
<tr>
<td colspan="4">
<form method="post" submit="submitfunction">
<p><a title="Fed" href="java script:void(0)" onclick="ExecCommand('Bold',false)">Fed</a>
<a title="Kursiv" href="java script:void(0)" onclick="ExecCommand('Italic',false)">Kursiv</a>
<a title="Understreget" href="java script:void(0)" onclick="ExecCommand('Underline',false)">Understreget</a></p>
<p><iframe id="wysiwyg" frameborder="0" style="border:1px solid #000000" contentEditable="true"></iframe></p>
<p><input id="editor" type="hidden" name="besked"></p>
<p><input type="submit" value="Send"></p>
</form>
<script language="JavaScript" type="text/javascript">
document.getElementById("wysiwyg").contentWindow.document.designMode="on"

function ExecCommand(a,b,c) {
document.getElementById("wysiwyg").contentWindow.focus();
document.getElementById("wysiwyg").contentWindow.document.execCommand(a,b,c);
}
function submitfunction() { document.getElementById("editor").value=document.getElementById("wysiwyg").contentWindow.document.body.innerHTML; return true }
</script>
</td>
</tr>
</table>
<?
}
?>
Avatar billede w13 Novice
01. august 2007 - 23:07 #5
Får du en fejlmeddelelse? Hvordan ser det ud? Det virker fint, når jeg bare afprøver den del, jeg gav dig. Men jeg koder ikke PHP.
Avatar billede webber89 Nybegynder
01. august 2007 - 23:19 #6
nej jeg kan ikke få den til at poste det
Avatar billede webber89 Nybegynder
01. august 2007 - 23:19 #7
selve funktionerne virker fint
Avatar billede w13 Novice
01. august 2007 - 23:36 #8
wups.

<form method="post" submit="submitfunction">

skal være

<form method="post" onsubmit="submitfunction()">
Avatar billede webber89 Nybegynder
01. august 2007 - 23:44 #9
du skal have rigtig mange tak og point hvis du vil.
men kan man flere ting så som størrelse osv.
Avatar billede w13 Novice
01. august 2007 - 23:54 #10
Ja, men det er knap så simpelt! :) Især ikke, hvis det skal virke i flere browsers. Men du kan se en liste over alle funktionerne her: http://msdn2.microsoft.com/en-us/library/ms533049.aspx
Avatar billede w13 Novice
01. august 2007 - 23:58 #11
Takker for point! :)
Avatar billede webber89 Nybegynder
02. august 2007 - 00:12 #12
tak for det
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