Avatar billede anderseiler Nybegynder
01. oktober 2005 - 22:31 Der er 6 kommentarer og
1 løsning

rte htmlarea problemer.. addimage

Hej.. Jeg har et problem mht det htmlarea (http://www.kevinroth.com/rte/demo.htm) jeg bruger. Det hander om funktionen addimage.

Sådan som det fungerer nu, så tiløjer man billeder ved at skrive URL'en på billedet. Jeg skal have lavet sådan, at i stedet for at man skriver en url, så viser den alle billederne som er registeret i min mysql database i tabellen "billeder". Når man så klikker på det billede man vil bruge, så skal variablen imagePath så laves om til navnet på billedet (navnet ligger i databasen, og billedet ligger naturligvis på serveren).

Skal lige sige at jeg er ret dum til JS, så bær over med mig hvis jeg siger eller spørger om dumt :)

Ved ikke om det kan bruges til noget, men den nuværende funkton til at tilføje billeder ser sådan her ud:

function addImage(rte) {
    //function to add image
    imagePath = prompt('Enter Image URL:', 'http://');               
    if ((imagePath != null) && (imagePath != "")) {
        rteCommand(rte, 'InsertImage', imagePath);
    }
}

Der for regende jeg med at man "blot" kunne indstille imagePath rigtigt for at få indsat det rigtige billede :)

Håber en kan hjælpe.

Hilsen Eiler :)
Avatar billede horsmark Nybegynder
02. oktober 2005 - 07:21 #1
hmm nu siger du du ikke er så hård til js og det kan bestemt give probs i denne sammenhæng. Jeg havde selv oprindeligt htmlarea editoren men har efter et par år ombygget den så meget at det næsten er en ny editor og jeg har også bygget det du forespørger.

Opgaven er ikke for begyndere da det er noget komplekst hejs.

Men den teknik du skal bruge er at åbne et nyt vindue (fra editorvinduet) hvor brugeren kan vælge sit billede og ved tryk på submit laver du en funtion alá nedenstående teknik

http://www.rgagnon.com/jsdetails/js-0066.html
Avatar billede anderseiler Nybegynder
02. oktober 2005 - 09:58 #2
Hvis nu du får min mail, kan du så ikke bare sende den funktion du har lavet? Så kan jeg selv rette den til med hvor den skal hente billederne fra osv.. Hvilken mappe og hvilken db osv. Tror jeg godt at jeg kan (ellers må jeg jo spørge igen) :P

Hehe så er du sød :)
Avatar billede anderseiler Nybegynder
03. oktober 2005 - 19:03 #3
Så langt så godt. Nu har jeg fået åbnet det nye vindue, og fået alle de rigtige billeder frem fra min database. Alle billederne bliver vist med en:

echo "<form action=\"\" name=\"billede\" method=\"post\" onSubmit=\"return updateParent();\">

<input type=\"image\" name=\"pic_name\" value=\"billede.jpg\" src=\"billede.jpg\" width=\"125\" height=\"100\">";
       
</form>"; (Jeg har fjernet al database-snasken, men det her burde give det samme resultat som hvis jeg havde givet dig alle de lange stier ect.)


Det JS jeg bruger lige nu er:

<SCRIPT LANGUAGE="JavaScript">
function updateParent() {
    opener.document.imagePath = document.billede.pic_name;
    window.close();
    return false;
}
</SCRIPT>... Alt dette er vel og mærket i pop-up vinduet.

Jeg åbner vinduet ved at kalde:

function addImage(rte) {
    //function to add image
    childWindow=open('../bruger/choose_ptb.php',window,'resizable=no,width=400,height=400,location=no');
   
    //imagePath = prompt('Enter Image URL:', 'http://');
    if ((imagePath != null) && (imagePath != "")) {
        rteCommand(rte, 'InsertImage', imagePath);
    }
}

Så i bund og grund, det jeg mangler er, at imagePath skal laves om til valuen på den <input type=\"image\"..> som er i pop-up vinduet... Hvordan gør jeg resten færdigt?? :)


Hilsen Eiler..
Avatar billede roenving Novice
04. oktober 2005 - 00:59 #4
Måske:

<script type="text/javascript">
function updateParent() {
    opener.rteCommand(rte, 'InsertImage', document.billede.pic_name);
    window.close();
    return false;
}
</script>... Alt dette er vel og mærket i pop-up vinduet.

Jeg åbner vinduet ved at kalde:

function addImage(rte) {
    //function to add image
    childWindow=open('../bruger/choose_ptb.php',window,'resizable=no,width=400,height=400,location=no');
}
Avatar billede roenving Novice
04. oktober 2005 - 01:00 #5
-- og måske skal det ikke være en henvisning til rte, men til opener.rte, altså:

opener.rteCommand(opener.rte, 'InsertImage', document.billede.pic_name);
Avatar billede anderseiler Nybegynder
04. oktober 2005 - 19:54 #6
Nu prøver jeg lige at poste igen og skrive hvor langt jeg er:

Jeg bruger følgende kode til at åbne vinduet med (den virker forresten ikke i IE??):

function addImage(rte) {
    //function to add image
    childWindow=open('../bruger/choose_ptb.php',window,'resizable=no,width=400,height=400');
   
    imagePath =opener.document.billede.pic_name.value;

    if ((imagePath != null) && (imagePath != "")) {
        rteCommand(rte, 'InsertImage', imagePath);
    }
}

Oppe i pop-up vinduet har jeg så en <input type="image" name="pic_name"> med billed destinationen som value. Hvis jeg så bruger echo $_POST['pic_name'] så udskriver den helt fint. Jeg skal bare have imagePath i det første dokument (det øverste script) til at være lig med pic_name når man submitter formen!

Mit script i pop-up vinduet er nu:


<SCRIPT LANGUAGE="JavaScript">
function updateParent() {

    imagePath = opener.rteCommand(rte, 'InsertImage', document.billede.imagePath.value);
    window.close();
    return false;
}
</SCRIPT>

Det tror jeg heller ikke rigtig virker, for den lukker ikke vinduet af sig selv når man submitter. Hvis man sætter // foran den øverste line, så vil den gerne lukke?

Hehe kan det ikke lade sig gøre at fixe de par ting?
Avatar billede anderseiler Nybegynder
08. juli 2006 - 14:54 #7
jeg lukker... den er vist død denne tråd...
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