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: 23158
  • 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: 23158
  • 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 697 korisnika na forumu :: 47 registrovanih, 7 sakrivenih i 643 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., amaterSRB, BlackPhantom, BrianRossman, Buzdovan, Cirkon, dac, Dannyboy, dekir, Doca, Drug pukovnik, DzoniHN, FOX, Gama, goxin, helen1, Ilija Cvorovic, ivan979, Klecaviks, machak, Marko Marković, MB120mm, Mercury, milekNS, Misirac, Mixelotti, Mlav, mrav pesadinac, ObelixSRB, Oluj2.1, panonski mornar, pein, Recce, repac, sakota79, Sale.S, sizif, Snorks, stegonosa, strela, Trpe Grozni, Vlada78, W123, Warhawk, YU-UKI, zajcev1, zixmix