Hei,
saisinko apua.
Sivustollani on lomake, joka lähetetään AjaxRequestin POSTilla kasitteleformi.php:hen.
Tämä kasitteleformi.php käsittelee lomakkeen dataa, ja mm. tulostaa sen ruudulle ns. reaaliaikaisesti, ilman että koko sivustoa ladataan uudestaan. Se saadaan suoraan tulostamalla php-koodilla.
Haluan käyttää tässä kasitteleformi.php:ssa javascript-funktioita, mutta ne eivät tunnu toimivan.
Jos kirjoitan siis:
echo '<script type="text/javascript">alert("MOI");</script>';
niin mitään ei tule. Jos laitan
echo '<button onclick="alert(\'Moi\');" >alert</button>';
niin johan pelittää klikkaamalla. Mitenköhän saisin js-koodin automaattisesti tekemään hommat ilman paineluita?
Jossain mainittiin, että tee funktiosi (jos käytän jotain muuta kuin alerttia) muotoon
function alert2(){ window.onload = function() { alert("Moi"); return false; } }
mutta en saanut tätäkään toimimaan.
Firebug ei suostunut Script-osiossa näyttämään näitä kumpaakaan koodia; html-osiossa se näyttää ne. Selaimen View Source ei taas tykkää näyttää tätä dynaamista "Ajax:lla generoitua" tavaraa ollenkaan.
Olisiko jollain antaa jotain vinkkiä?
Kiitos.
Jos palautat sen javascript -koodin ilman noita <script ..> tageja ja sanot siellä ajaxin käsittelyssä eval -funktiota, eli eval(saatuvastaus).
Vaikka tuon saa tehtyä, niin todennäköisesti tavoittelemasi toiminnallisuuden toteuttamiseen on parempia vaihtoehtoja. Jos kyseessä on vaan testailu, niin tällähän ei tietenkään ole mitään väliä.
Jos ja kun toivottavasti käytät jotain kirjastoa etkä säädä AJAXilla käsin, käytössäsi varmaan on valmis funktio tähän. Prototypen Element.update ajaa HTML:n seassa olevat skriptit, samoin näyttäisi tekevän jQuery.html.
Kiitos, taas.
Alkuperäinen ajatus oli 1+1 klikkauksen lomakkeen talletus: ensin kerran, jolloin se "esinäyttää" ja tulostaa "tallenna"-napin. Esikatselu vaati vielä tätä reaaliaiskasta javascript-funktioiden ajoa, mikä ei pelittänyt.
Grez:n ajatuksia seuraillen muutin toiminnallisuuden suoraan 2 napin versioon: "esikatselu" ja "tallenna". Toimii, koodi yksinkertaistuu paljon, eikä käytettävyys juuri muutu. Ainakaan pahempaan suuntaan.
Mutta, ehkä kannattaisi opetella jQuerya, kuten alempi mainitsi. Jotenkin puhdas js tuottaa eriskummallisia ongelmia, joihin moniin viitataan jQueryllä.
jQuery tuntuu olevan jonkun sortin de facto -standardi.
Ei "puhdas JS" tuota juurikaan eriskummallisia ongelmia (ainakaan tässä keskustelussa kuvattua). Mutta kuten lähes kaikissa kielissä ja kirjastoissa, kielellä voi tehdä paljon asioita, joista osa on hankalia, ja kirjaston tarkoitus on tehdä tärkeimmistä asioista vähän helpompia. AJAX ja DOM-puun käsittely nyt sattuvat olemaan tavallisesti sieltä vaikeammasta päästä, jolloin hyvän kirjaston merkitys on suurempi.
JS:ää lisäksi sotkee se, että eri selaimissa (erityisesti vanhemmissa IE-versioissa) on erilaisia puutteita ja poikkeamia standardeista. Silloin "puhdas JS" ehkä aiheuttaa eriskummallisia ongelmia, mutta vika ei ole kielessä vaan viallisissa selaimissa. Näitä eroja sitten kirjastot yrittävät piilottaa.
Jep, jotkut asiat saa tehtyä helpommin esim. jQueryllä, mutta tärkeintä on varmaankin se, että tietyt perusjutut onnistuu selaimesta riippumatta helposti.
Varsinkin Firefox tuntuu nykyisin aiheuttavan paljon harmaita hiuksia. Viimeksi tänään törmäsin jQueryssä ominaisuuteen, joka toimi kaikkialla muualla paitsi Firefoxissa. Tosin sekin ollaan ilmeisesti korjaamassa myöhempään jQueryn versioon.
Aihe on jo aika vanha, joten et voi enää vastata siihen.