Direktno pozivanje php funkcija kroz javascript

Direktno pozivanje php funkcija kroz javascript

offline
  • Pridružio: 29 Jun 2007
  • Poruke: 51
  • Gde živiš: Nis

Mozda nekom bude korisno Wink

[Link mogu videti samo ulogovani korisnici]



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

Napisano: 28 Jun 2010 19:35

svaka cast druze Smile

Dopuna: 28 Jun 2010 19:37

mozes li nam ukratko objasniti kako ovo funkcionise? Smile



offline
  • Pridružio: 29 Jun 2007
  • Poruke: 51
  • Gde živiš: Nis

Implementacija je krajnje jednostavna kao sto sam i rekao, dovoljno je da u skriptu cije public metode zelis da koristis uradis sledece:

<?php //ukljuciti jAPI-Core.php u svoj skript include("jAPI-Core.php"); //...tvoje klase, i kod koji vec hoces da imas u njima //napravis novu instancu a kao parametar prosledis imena klasa iz kojih zelis da public funkcije budu vidljive na klijentskoj strani (javascript-u) new jAPIBaseClass('imeTvojeKlase,imeTvojeDrugeKlase');

Evo konkretan primer kako bi mogao da izgleda:
jAPI-Remote.php
<?php //Include jAPI Core and jAPIBaseClass include("httpHandler/jAPI-CORE.php"); //Bellow is some demo classes with some basic functions class MySimpleMath {     public function Addition($firstParam, $seccondParam) {         $sum = $firstParam+$seccondParam;         echo $sum;     }     public function CompareNumbers($firstNum, $seccondNum) {         $comparingResults = ($firstNum == $seccondNum)?"The numbers are equal":"The number is not equal";         echo $comparingResults;     } } class MyStringMixer {     public function ReverseString($inputString) {         echo strrev($inputString);     }     public function JustSayHi() {         echo "Hello world!";     } } //Create new instance of jAPIBaseClass with names of all classes that you want to use separeted with comma... new jAPIBaseClass('MySimpleMath,MyStringMixer'); ?>  

...nakon ovoga da u svom html fajlu ukljucis jAPI.js fajl koji sluzi za slanje asinhronih zahteva i za hvatanje response-a sa servera, i gornji php skript kao javascript (ja sam ga nazvao jAPI-Remote.php ali u sustini moze biti bilo koji, nebitno je)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>     <head>         <title>jAPI Direct - Demo</title>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">               <script type="text/javascript" src="jAPI.js"></script>         <script type="text/javascript" src="jAPI-Remote.php"></script>     </head>     <body></body> </html>

jAPI-Core.php je napisan tako da na osnovu imena klasa koje mu se proslede izvrsi tzv. refleksiju tih klasa, i da automatski vraca JavaScript deklaraciju ekvivalentnu deklaraciji server side metoda, sto dalje omogucava da kroz javascript mozes da pozoves na sledeci nacin PHP metodu:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>     <head>         <title></title>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <script type="text/javascript" src="js/jAPI.js"></script>         <script type="text/javascript" src="jAPI-Remote.php"></script>     </head>     <body>         <script>             MySimpleMath.Addition(555,2);             MySimpleMath.CompareNumbers(23,55);             MyStringMixer.ReverseString("This is a test...");             MyStringMixer.JustSayHi();         </script>     </body> </html>

...nadam se da sam malkice pojasnio sustinu? Smile

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

aha, znaci ajax komunikacija sa php-om, to me je zanimalo, ispod haube kako radi Wink

Ko je trenutno na forumu
 

Ukupno su 1801 korisnika na forumu :: 102 registrovanih, 7 sakrivenih i 1692 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 6018 - dana 19 Dec 2025 13:41

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., advokat84, aleph_one, amaterSRB, AxeleX, Ba4e, Betty25, bobomicek, Botovac, branko7, Cicumile, CLIPPER, darkojbn, Delaga, Dexlex, Dimitrise93, dinamik, Djokislav, djonsule, dolinalima, DonRumataEstorski, draganl, Drugard72, Duce, dunavzed, Dzuki, eighty-one, Electron, Feller, Fog of War, Gerilac, goflja76, goran.vvv, goxin, h8propaganda, Haris, havoc995, HrcAk47, Insan, Jaz, jeen yuhs, Jelly4183, Jeremiah, K a s p e r, K-1A, Kalem, Kenanjoz, Klecaviks, krca73, Kubovac, ladro, laki_bb, Levi, Litostroton, lord sir giga, Lošmi, marko.markovic, MarkoW, menges, Mi lao shu, Miler88, Morava71, Motocar, Mzee, N.e.m.a.nj.a., nebojsag, nemkea71, niksa517, Nole, nuke92, Petar888, PlayerOne, Profesor_018, radza1, Romibrat, sales, samp1389, Sarmat, Sevetar, Shajlok, Sir Budimir, Sky diver 29, Sonic, spalev, Steeeefan, stefanmpurtic, Str2022, The_new_Statesman, theNedjeljko, travisrise, troki1971, Tumansky, ujke, Vanderx, VaRvArI 85, Vaske8990, vathra, Velizar Laro, vespa nikola, vrlenija, Zdenko, zokikurir