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

code.google.com/p/japi-project/



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 1043 korisnika na forumu :: 24 registrovanih, 8 sakrivenih i 1011 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., amaterSRB, avijacija, Bobrock1, Excalibur13, Faki-Valjevo, Georgius, Jeremiah, Kubovac, ladro, Lieutenant, mercedesamg, mile23, milenko crazy north, mkukoleca, nebojsag, pacika, Panter, Romibrat, ruma, tomigun, Vlada78, zixmix, šumar bk2