Avatar billede avminarm Juniormester
09. juli 2003 - 11:36 Der er 39 kommentarer og
1 løsning

Få værdier fra i <iframe> ind i DB (wysiwyg)

Hej jeg har denne kode stump som fungerer som wysiwyg-editor, men hvordan får jeg indholdet sat i MySQL db via -  PHP - den bliver benyttet i en formular hvor den erstatter textarea f.eks:

<html>
<head>
<title> </title>
<script language="JavaScript">

function Init() {
  iView.document.designMode = 'On';
}

//GØR FED
function doBold() {
  iView.document.execCommand('bold', false, null);
}

//CENTRER
function doCenter() {
  iView.document.execCommand('justifycenter', false, null);
}

//knap til når man er over fed knappen
function selOn(ctrl) {

ctrl.style.borderColor = '#000000';
ctrl.style.backgroundColor = '#FFFF00';
ctrl.style.cursor = 'hand';

}
function selOff(ctrl) {

ctrl.style.borderColor = '#000000';
ctrl.style.backgroundColor = '#4FA7FF';
ctrl.style.cursor = 'hand';

}
function selDown(ctrl) {

ctrl.style.borderColor = '#000000';
ctrl.style.backgroundColor = '#FF6A6A';
ctrl.style.cursor = 'hand';

}
function selUp(ctrl) {

ctrl.style.borderColor = '#000000';
ctrl.style.backgroundColor = '#828282';
ctrl.style.cursor = 'hand';

}
</script>

<style type="text/css">
.butClass {
  border: 1px solid;
  border-color: #D6D3CE;
}
</style>

<body onLoad="Init()">
<form action="action.php" method="post">
<input type="text" name="overskrift" maxlength="40">

<!--knap med FED-->
<img alt="Bold" class="butClass" src="bold.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBold()">
<!--knap der centrer-->
<img alt="Bold" class="butClass" src="center.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doCenter()"><br>

<iframe id="iView" ></iframe>

<input type="submit" name="submit" value="indsæt">

</body>
</html>
Avatar billede roenving Novice
09. juli 2003 - 11:48 #1
Har du din redigerede tekst i en div eller span i iframen ?-)

Umiddelbart ville jeg bruge onsubmit til at hente værdien fra det over til et textarea-felt i formen, så kan du jo få direkte adgang til det serverside ...
Avatar billede avminarm Juniormester
09. juli 2003 - 11:58 #2
hmmm - jeg er ikke så ferm til javascript - det er "plukket" fra en artikel på devshed.com - så jeg har ikke andet end det der står ovenfor, men jeg vil blive meget glad hvis du kunne hjælpe med at få det til at fungere ;o) - meget gerne med lidt kode på.
Avatar billede roenving Novice
09. juli 2003 - 12:21 #3
Jeg har ikke haft fat i de edit-kontroller før, så jeg må spørge mig vej igennem -- javascript-problemerne kan jeg garanteret hjælpe med til, men php og det der skal ske serverside bliver jeg dig svar skyldig med !o]

Hvilket resultat får du, hvis du bare prøver at udføre indsæt (efter selvfølgelig at have sat action til noget, du kan bruge til noget !-)

-- jeg fik ikke underligt siden kan ikke vises, men jeg har jo heller ikke php på computeren ...
Avatar billede avminarm Juniormester
09. juli 2003 - 13:13 #4
PHP/sql har jeg selv styr på, men jeg skal bare have skidtet fra iframen med over som en variabel evt. via et textarea som du foreslår - jeg får intet resultat hvia jeg forsøger bare at submitte formen
Avatar billede roenving Novice
09. juli 2003 - 13:22 #5
oki, så må vi jo prøve:

<form action="action.php" method="post" onsubmit="this.fulltext.value=document.getElementById('iView').innerHTML">

og så et
<textarea name="fulltext" style="display:none;">
på formen
Avatar billede avminarm Juniormester
09. juli 2003 - 13:57 #6
det virker ikke - du kan se det her:

http://wagners.users.whitehat.dk/wysiwyg/
Avatar billede roenving Novice
09. juli 2003 - 14:29 #7
Den skulle lidt længere omkring, før den virker, men sådan:

<form action="action.php" method="post" onsubmit="iView.document.execCommand('selectAll');x=iView.document.selection.createRange();this.form.fulltext.value=x.htmlText">
Avatar billede avminarm Juniormester
09. juli 2003 - 14:43 #8
jeg er ked af det, men det virker stadigvæk ikke - hvis du har en anden alternativ løsning er den velkommen
Avatar billede roenving Novice
09. juli 2003 - 14:48 #9
Jeg prøvede (kan jo ikke teste din submit ;-) det ved hjælp af en button og gjorde textarea synligt -- det fungerede upåklageligt ...

<button onclick="iView.document.execCommand('selectAll');x=iView.document.selection.createRange();this.form.fulltext.value=x.htmlText">Vis</button><br>
<br><textarea name="fulltext" rows="5" cols="50"></textarea><br>
Avatar billede avminarm Juniormester
09. juli 2003 - 14:58 #10
du kan teste min submit ved at gå ind på det link jeg har vist dig - textarea skal helt ikke blæive synligt - blot være med når der skal sendes til DB
Avatar billede roenving Novice
09. juli 2003 - 15:05 #11
Det var også kun til test, at jeg havde det fremvist ...

-- og det kommer jo over i textarea !-)
Avatar billede avminarm Juniormester
09. juli 2003 - 15:09 #12
det kan godt være jeg er tung idet med hensyn til det her, men hvis jeg trykker på submit kommer kun overskriften med (og knap teksten) - er der noget jeg ikke har fattet?
Avatar billede roenving Novice
09. juli 2003 - 15:14 #13
Når jeg prøver det noget af det jeg kan virker det upåklageligt, hvis det ikke virker, når du submitter må vi debugge de funktioner, derfor ville jeg teste vha. mit forslag, så vi kan se om det virkelig kommer over i textarea, når det kører over serveren -- hvis det ikke sker må vi finde ud af hvorfor det ikke kommer over i textarea, hvis det kommer over må vi checke hvorfor det ikke kommer ind i databasen ...
;O)
Avatar billede avminarm Juniormester
09. juli 2003 - 15:34 #14
jo det kommer over i textarea det kan jeg godt se, men jeg vil have at når man submitter bliver alle felter/variabler fra foumularen sendt til filen action.php - hvis du forstår?
Avatar billede roenving Novice
09. juli 2003 - 15:36 #15
Ja, selvfølgelig, og du har check på at php tager fat i værdien, når du kommer over ?-)
Avatar billede avminarm Juniormester
09. juli 2003 - 15:42 #16
jo, men det vil sige jeg skal altså submitte to gange? - det vil jeg helst undgå

btw - jeg er nok væk i mindst et par timer fra nu
Avatar billede roenving Novice
09. juli 2003 - 15:44 #17
Næh, du skal ikke submitte to gange ...
onsubmit kører FØR formen bliver submittet, men det er klart at dit php-script skal tage fat i værdien i fulltext-feltet for at du kan gøre noget med den ...
Avatar billede avminarm Juniormester
09. juli 2003 - 22:23 #18
det lille script - på det link jeg har vist tager alle variabler som sendes vis "POST" og udskriver dem på siden action.php, men den der <button osv... - kan jeg frit kalde den <input type="button...... >
Avatar billede roenving Novice
09. juli 2003 - 22:25 #19
Det skulle ikke ændre noget ...
Avatar billede avminarm Juniormester
09. juli 2003 - 22:46 #20
har prøvet det - se http://wagners.users.whitehat.dk/wysiwyg/nyindex.php - kan du se hva jeg gør galt??
Avatar billede roenving Novice
09. juli 2003 - 22:50 #21
Næ, jeg kan ikke se nogen fejl ,-)

-- men jeg ville prøve med en input type="hidden" i stedet for textareaet ...
Avatar billede avminarm Juniormester
10. juli 2003 - 09:13 #22
nix det virker ikke
Avatar billede avminarm Juniormester
10. juli 2003 - 10:58 #23
jeg har fundet noget i et andet sprg, men jeg kan ikke få det til at spille - måske kan du?

Her en copy/paste:

form hedder "frm"

og jeg har et billed til submit:
<img src="gem.gif" alt="Gem dokument" onClick="send();">
i formen har jeg det her felt også:
<input type=hidden name=content value="">

her er javascript-funktionen:

function send() {
document.frm.content.value = document.ifr.document.body.outerHTML;
document.frm.submit();
}
Avatar billede Slettet bruger
12. juli 2003 - 19:03 #24
Hvad er fejlen?
Avatar billede avminarm Juniormester
12. juli 2003 - 21:53 #25
hmm - jeg er ikke så fantastisk til javascript, jeg ville gerne have at når jeg submittede kunne jeg indsætte det fra iframe i databasen, sammen med overskriften, som er en ganske alm POST variabel, men jeg kan ikke få "fat" i det fra iframe
Avatar billede avminarm Juniormester
12. juli 2003 - 21:54 #26
og tak fordi du kiggede forbi ;o)
Avatar billede Slettet bruger
13. juli 2003 - 10:24 #27
Jamen, lad os lige se hele din kode med den drilske submitfunktion, helst i form af et link.
Avatar billede tuctoh Nybegynder
13. juli 2003 - 22:35 #28
ok, i din tabel indsætter du:

<input type='hidden' name='message'>

mellem dine head tags indsætter du:

<script language='javascript'> function Process() {
var htmlCode = iView.document.body.innerHTML;
document.all.message.value = htmlCode;
}</script>


og til sidst i dit form-tag indsætter du:
onSubmit='Process()'


i dit PHP script får du så et felt posted som hedder "message" og indeholder HTML koden for det du selv skrev.

Hjalp det?
Avatar billede avminarm Juniormester
14. juli 2003 - 08:31 #29
phoenix - der er links længere oppe på siden til min oprindelige fil

tuctoh - Jeg tester det iløbet af dagen ;o)
Avatar billede Slettet bruger
14. juli 2003 - 10:22 #30
Hm, jeg vil foreslå dette (meget lig tuctoh's):

Indsæt et hidden-felt inden for form-tagene:

<input type="hidden" name="html">

Og dit form-tag skal se således ud:

<form action="action.php" method="post" onSubmit="this.html.value = document.all.iView.document.body.innerHTML; return true;">

Derefter sendes "html" videre vha. POST.

Du kan se det i aktion her:
http://phoenixv.h4f.dk/mini_wysiwyg.html
Avatar billede avminarm Juniormester
14. juli 2003 - 11:51 #31
phoenix>> din vil ikke rigtig http://wagners.users.whitehat.dk/wysiwyg/phoenix.php

Men tuctoh's virker ;o) - så jeg håber det er ok han får points, men tak for hjælpen alle sammen.
Avatar billede Slettet bruger
14. juli 2003 - 11:52 #32
Du har sat to = i onSubmit. Der skal kun være ét.
Avatar billede tuctoh Nybegynder
14. juli 2003 - 12:10 #33
tak for points :)
Avatar billede avminarm Juniormester
14. juli 2003 - 14:41 #34
phoenixv>> hmmm - det har jeg også - hvis du vil have en del af kagen opretter jeg gerne et sprg til dig :o)
Avatar billede avminarm Juniormester
14. juli 2003 - 14:43 #35
det er fjernet, men den gør stadigvæk lidt underligt?? - den skulle bar spyte var ud på siden action.php
Avatar billede Slettet bruger
15. juli 2003 - 10:23 #36
Jeg tror, du kører en htmlentities eller noget i den stil. Hvis du ser på source-koden, der bliver skrevet ud af PHP, er der sat backslashes foran alle citationstegn og apostroffer, og hvis man vælger Vis Kilde ser man, at mellemrum er erstattet med &nbsp;
Så der må være ét eller andet, du gør forkert i din PHP-kode.
Avatar billede Slettet bruger
15. juli 2003 - 10:23 #37
Mht. pointene, så nej tak! :)
Avatar billede avminarm Juniormester
15. juli 2003 - 23:23 #38
hmm min php kode er her kun:

foreach($_POST as $key => $value){
  echo $value."<br>";
}
Avatar billede Slettet bruger
16. juli 2003 - 14:31 #39
Det virker i hvert fald fint ved min "mini_wysiwyg".
Måske skulle du prøve at kigge efter, hvad jeg gør. Skal jeg sende dig filerne?
Avatar billede avminarm Juniormester
17. juli 2003 - 08:57 #40
det må du gerne på exp@avminmusearm.dk
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