Avatar billede Slettet bruger
16. december 2008 - 00:28 Der er 5 kommentarer

Syntaks problemer

Hej forum. Jeg har et problem med nedenstående kode:

function submitForm() {
updateRTEs();
<? $test="?>document.forebyggelse_og_formidling.rte1.value;<?";?>
return true;
}

Jeg prøver ihærdigt på at få Java og PHP til at arbejde sammen. Jeg ønsker at lave en PHP variabel, $test, som har værdien af Java objektet, document.forebyggelse_og_formidling.rte1.value.

Mit problem er så bare at anførselstegnet " efter $test får ?> til at blive en del af værdien. Det samme gælder i enden af <?";?>. Er der et smart trick til at undgå dette?
Avatar billede Slettet bruger
16. december 2008 - 02:27 #1
Jeg går ud fra, det er et JavaScript object, du snakker om?

Det, du prøver på, er ikke muligt, fordi scripteksekveringen forgår 2 steder.
PHP bliver udført på serveren mens JavaScript kører på brugerens maskine.

For at få det til at lykkes, skal du sende dit objects værdi i en html form:

<form method='POST' onsubmit='document.getElementById("forebyggelseOgFormidling").value = document.forebyggelse_og_formidling.rte1.value;return false;'>
    <input type='hidden' name='forebyggelseOgFormidling' id='forebyggelseOgFormidling'>
    <input type='submit' value='Send data'>
</form>

Du kan nu læse værdien på server siden vha. $_POST['forebyggelseOgFormidling']

Vh Mathias
Avatar billede Slettet bruger
17. december 2008 - 00:08 #2
Tak for dit svar kvadratrodenaf1. Jeg er nu mere opmærksom forskellen mellem java og php. Overstående har dog ikke løst mit problem, så jeg ville være yderst taknemmelig hvis du kunne finde min fejl i nedenstående script, hvor jeg har brugt dit råd?

Mit problem er at værdien af inputtet: 'forebyggelseOgFormidling' ikke bliver POST'et med over i 'edit_forebyggelse_og_formidling_sql.php'.


<form name='forebyggelse_og_formidling' action='edit_forebyggelse_og_formidling_sql.php' method='post' onsubmit='return submitForm();document.getElementById("forebyggelseOgFormidling").value = document.forebyggelse_og_formidling.rte1.value;return true;'>

<script language='JavaScript' type='text/javascript'>

function submitForm() {
    updateRTEs(); 
       
}

initRTE("images/", "", "");

</script>

<noscript><p><b>Javascript Skal være installerede for at kunne benytte denne formular.</b></p></noscript>

<script language='JavaScript' type='text/javascript'>

writeRichText('rte1', '<? echo"$text[0]"; ?>', 520, 200, true, false);


</script>


<input type='hidden' id='forebyggelseOgFormidling' name='forebyggelseOgFormidling'>

<input type='submit' name='submit' value='Submit'>
</form>
Avatar billede olebole Juniormester
17. december 2008 - 09:24 #3
<ole>

Du returnerer det første funktionskald i din onsubmit handler ... så kommer du jo aldrig videre  =)

<form name='forebyggelse_og_formidling' action='edit_forebyggelse_og_formidling_sql.php' method='post' onsubmit='submitForm();document.getElementById("forebyggelseOgFormidling").value = document.forebyggelse_og_formidling.rte1.value'>

/mvh
</bole>
Avatar billede Slettet bruger
17. december 2008 - 09:53 #4
Du må undskylde, hvis jeg kører i det, men det hedder JavaScript - ikke Java. Java er et helt andet sprog, som ikke har noget med JavaScript at gøre.

Bare en lille sidebemærkning fra mig, som måske vil gøre det nemmere at få hjælp i fremtiden.

Desuden kan jeg se, at jeg havde fået smuglet et lille return false ind i onsubmit, som også ville have annuleret afsendelsen af formen.

Mathias.
Avatar billede Slettet bruger
17. december 2008 - 20:47 #5
Jeg har prøvet at kæmpe videre ud fra oleboles kommentar men jeg kan stadigvæk ikke få værdien med over. Er der nogen der kan uddybe en løsning på problemet lidt?
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