Onko mahdollista tai sallittua kutsua php-funktiota javascript-funktiosta?
Sitä kutsutaan AJAXiksi
JavaScript pyörii (yleisesti näissä esillä olevissa tilanteissa) käyttäjän selaimessa, PHP palvelimella. PHP:n kannalta ei ole eroa pyytääkö esim. tiedot.php-sivua käyttäjä selaimellaan suoraan vai tekeekö sen JavaScript.
Toisin sanoen et voi kutsua PHP-funktioita suoraan, vaan se kutsu tapahtuu normaalilla PHP-tiedostoon kohdistuvalla latauksella.
Turso kirjoitti:
tai sallittua kutsua php-funktiota javascript-funktiosta?
Ehdottoman laitonta toimintaa! :(
Matso kirjoitti:
Ehdottoman laitonta toimintaa! :(
Luotanko vain sanaasi, vai onko jotain viitteitä tämän tueksi?
Eikö se tuossa aiemmin tullut selväksi? Alkuperäisessä merkityksessään ei onnistu.
Ei, ei tullut.
Laitan vielä nippuun tämän:
Blazen Ajax-linkki oli hyvä, vastaus löytyi sieltä, etenkin ko. oppaan autokauppaesimerkki selvensi tämän, kiitos siitä!
Laittomuus tai kannattaako jotain tehdä toisin jäi nyt vähän epäselväksi, mutta siihen en pyydä enempää kommentteja. Lienee kuitenkin niin, että post- ja get-muuttujien kanssa tällainen on ok.
JavaScript ajetaan selaimella, PHP palvelimella. Palvelin lähettää selaimelle valmiiksi tulkatun vastauksen, ja sen jälkeen selain tulkkaa JavaScriptin. JavaScript ei siis tiedä mitään PHP:stä, eikä PHP JavaScriptistä. Nämä kaksi suoritetaan toisistaan riippumattomasti ja eri vaiheissa sivunlatausta.
Suoraan PHP-funktion kutsuminen JavaScriptistä samalla sivunlatauksella (kuten oletin sinun tarkoittavan), on mahdotonta. Parametrien avulla voidaan muuntaa PHP-skriptin suoritustapaa, jolloin saadaan haluttu vastaus. On kuitenkin hyvä pitää mielessä, että parametrit pitää tarkistaa tarkkaan mahdollisten haitallisten syötteiden takia. Käyttäjä voi aivan hyvin kaivaa osoitteen esille, josta JavaScript pyytää tietoja, ja syöttää haitallisia parametreja.
Aihe on jo aika vanha, joten et voi enää vastata siihen.