Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wywołanie konkretnej funkcji php
Forum PHP.pl > Forum > XML, AJAX > AJAX
jacek21
Witam,

Piszę pewną klasę i pojawił się pewien problem chciałbym żeby była uniwersalna i elastyczna, lecz nie do końca wychodzi.
Przyklad:

plik.class.php
  1. class Zyj{
  2.  
  3. public function bij(){
  4. //tutaj dajmy, że wykonuje jakies tam obliczenia
  5. }
  6. }


index.php
  1. $zyj = new Zyj;
  2.  
  3. <div id='jakies'>
  4. ".$zyj->bij()."
  5. </div>
  6. ";


i teraz pojawia się problem chciałbym żeby AJAX wykonywał tylko $zyj->bij(); nie cały plik index.php. Wywoływanie klasy też mija się z celem, ponieważ gdybym chciał żeby w index.php było kilka wywołań tej metody i dajmy na innej podstronie też uzywałbym tej klass to słabo jest z rozpoznaniem co gdzie wyświetlić :|
Można jakoś przekazać do JS konkretną metode do wykonania zamiast całego pliku?
Monter08
Cytat
Można jakoś przekazać do JS konkretną metode do wykonania zamiast całego pliku?

Nie można. Jak sobie wyobrażasz, wywołanie metody serwera przez klient? zostaje Ci tylko utworzenie pliku po stronie PHP który wykonywałby tą metodę i wyświetlał wynik który przekazujesz przez ajax.
jacek21
A jakiś pomysł jak to najlepiej zrobić żeby ktoś kto będzie korzystał z tej klasy nie musiał się za bardzo gimnastykować ?
Bo co nie wymyślę to i tak po chwili głębszego zastanowienia okazuje się złym pomysłem...

gdy wywołuje te metody w class.php to nawet to mogłoby jakoś funkcjonować tylko pojawia się kolejny problem z rozpoznawaniem gdzie co ma wyświetlić ;/

Może źle się za to zabieram?
Monter08
Nie bardzo rozumiem co masz dokładnie na myśli, ale czy nie możesz po prostu tak jak pisałem wcześniej stworzyć plik PHP do którego będziesz przesyłał parametry w zmiennych GET lub POST przez ajax a następnie z danymi robił już co chcesz, czyli wyświetlał. Albo za bardzo kombinujesz albo całkowicie nie o to Ci chodzi.
jacek21
Mamy klase
Mamy index
Mamy podstrone
Mamy dodatkowy plik php powiedzmy example.php

w klasie znajdują sie metody, wysyłąm getem do example.php jakieś parametry raz i drugi. odbierał wywołuje metode(z klasy) i dalej wczytuje do index.php i podstrona.php

jakas.class.php
  1. class cos{
  2. public function dodaj(a,b){
  3. return a+b;
  4. }
  5. public function dodaj2(a,b){
  6. return a+b+2;
  7. }
  8. }
  9.  



example.php
  1. $create -> cos;
  2. $create->dodaj($_GET['dane']); //powiedzmy, ze to sa te 2 parametry, których wymaga metoda
  3. $create->dodaj2(tu para); // wywolanie innej metody



index.php
  1. example teraz wypisze mi jedna i druga metode
  2. a chcialbym zeby wypisal mi tu np. dodaj()


podstrona.php
  1. tutaj dodaj2()


Do kazdej metody mam mieć odzielny plik ?
To w ogóle nie będzie przyjemne w implementacji ;/
Mam nadzieje, że źle Cię zrozumiałem bo to powyżej jest bez sensu ;/

Pokaż mi to na jakimś przykładzie, jeśli możesz. chodzi mi o to, że powiedzmy mam w klasie 2 metody, które chciałbym używać na stronie w różnych miejscach i na różnych podstronach w samym php to jest banalne wystarczy dołączyć plik i wywołać metode tu jedną tu drugą, ale gdy chce dorzucić AJAX'a mam problemy.
Monter08
W example.php użyj po prostu switcha:
  1. $action = $_GET['action'] // Jaka akcja jest wykonywana
  2. switch($action){
  3. case 'dodaj':
  4. echo $cos->dodaj($_GET['parametr']);
  5. break;
  6. case 'dodaj2':
  7. // Metoda 2
  8. break;
  9. // itd..
  10. }

Dalej chyba nie muszę tłumaczyć.
jacek21
myślałem też o tym rozwiązaniu przed chwilą i szczerze mówiąc poniekąd spełnia swoje zadanie w 100%, choć wygląda trochę amatorsko biggrin.gif zaś z drugiej strony dużo ułatwia smile.gif

Dziękuje za zainteresowanie, gdyby ktoś wpadł na jeszcze inny sposób to z chęcią go przeanalizuję ^^


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.