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: 23212
  • 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: 23212
  • 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 3329 korisnika na forumu :: 70 registrovanih, 9 sakrivenih i 3250 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., airsuba, ArmyBoss, atmel, awathorn, Ben Roj, Bobrock1, Boskovic, cebam, celt, Colt D, comi_pfc, darionis, darkdruid72, dejan1972, DejanSt, DJUNTA, Dolinc, DonRumataEstorski, draganca, draganl, DragoslavS, dule10savic, feanor, Giskard, havoc995, istina, ivan_8282, Jomini, kaput21, kikisp, knutveliki, Kruger, kuntalo, M74AB3, Marko Marković, marko308, max power, mercedesamg, Milun24, mino bosanac, moldway, morava_01, nebkv, nefs, oblivion, Panter, pein, redstar011, rikirubio, rovac, SamoGledam, samojednoimeznam, sap, Shadow soldier, Sin Boskic, Sonic, Srki98, Tandrkalo, Topaz9, ulogovan, Valter071, Vrač, wulfy, XBMC, Zastava, zeka013, ZetaMan, ZlatniRez