To może być prosta odpowiedź, ale używam $ .ajax jQuery do wywołania skryptu PHP. To, co chcę zrobić, to po prostu umieścić ten skrypt PHP wewnątrz funkcji i wywołać funkcję PHP z javascript.
<?php
if(isset($_POST['something'] {
//do something
}
?>
do tego
<?php
function test() {
if(isset($_POST['something'] {
//do something.
}
}
?>
Jak wywołać tę funkcję w javascript? W tej chwili używam tylko $ .ajax z wymienionym plikiem PHP.
Odpowiedzi:
Służy
$.ajax
do wywoływania kontekstu serwera (lub adresu URL itp.) W celu wywołania określonej „akcji”. To, czego chcesz, to coś takiego:Po stronie serwera
action
należy odczytać parametr POST, a odpowiadająca mu wartość wskazywać metodę do wywołania, np .:Uważam, że jest to proste wcielenie wzorca Command .
źródło
Opracowałem wtyczkę jQuery, która umożliwia wywołanie dowolnej podstawowej funkcji PHP, a nawet funkcji PHP zdefiniowanych przez użytkownika jako metod wtyczki: jquery.php
Po umieszczeniu jquery i jquery.php w nagłówku naszego dokumentu i umieszczeniu request_handler.php na naszym serwerze zaczęliśmy używać wtyczki w sposób opisany poniżej.
Aby ułatwić użytkowanie, odwołaj się do funkcji w prosty sposób:
Następnie zainicjuj wtyczkę:
A teraz kilka scenariuszy użytkowania:
Demonstracja tworzenia łańcuchów funkcji PHP:
Demonstracja wysyłania bloku JSON pseudokodu PHP:
Konfiguracja zaplecza zapewnia białą listę, dzięki czemu można ograniczyć wywoływanie funkcji. Jest kilka innych wzorców pracy z PHP opisanych przez wtyczkę.
źródło
Chciałbym trzymać się normalnego podejścia do bezpośredniego wywoływania pliku, ale jeśli naprawdę chcesz wywołać funkcję, spójrz na JSON-RPC (zdalne wywołanie procedury JSON).
W zasadzie wysyłasz na serwer ciąg JSON w określonym formacie, np
który zawiera funkcję do wywołania i parametry tej funkcji.
Oczywiście serwer musi wiedzieć, jak obsłużyć takie żądania.
Oto wtyczka jQuery do JSON-RPC i np. Zend JSON Server jako implementacja serwera w PHP.
Może to być przesada w przypadku małego projektu lub mniejszej liczby funkcji. Najłatwiej byłaby odpowiedź Karima . Z drugiej strony JSON-RPC to standard.
źródło
Nie możesz wywołać funkcji PHP za pomocą JavaScript, w ten sam sposób, w jaki nie możesz wywoływać dowolnych funkcji PHP podczas ładowania strony (wystarczy pomyśleć o konsekwencjach dotyczących bezpieczeństwa).
Jeśli z jakiegoś powodu chcesz opakować swój kod w funkcję, dlaczego nie umieścisz wywołania funkcji pod definicją funkcji, np .:
Lub użyj PHP, w tym:
źródło
Będziesz musiał ujawnić punkt końcowy (URL) w swoim systemie, który zaakceptuje żądanie POST z wywołania ajax w jQuery.
Następnie, podczas przetwarzania tego adresu URL z PHP, wywołałbyś swoją funkcję i zwrócił wynik w odpowiednim formacie (najprawdopodobniej JSON lub XML, jeśli wolisz).
źródło
Możesz skorzystać z mojej biblioteki, która robi to automatycznie, ulepszałem ją przez ostatnie 2 lata http://phery-php-ajax.net
JavaScript byłby prosty jak
Możesz przekazać całą dynamiczną część javascript do serwera za pomocą narzędzia do tworzenia zapytań, takiego jak interfejs łańcuchowy, a także możesz przekazać dowolny typ danych z powrotem do PHP. Na przykład niektóre funkcje, które zajmowałyby zbyt dużo miejsca po stronie javascript, można wywołać na serwerze za pomocą tego (w tym przykładzie mcrypt, które w javascript byłoby prawie niemożliwe do wykonania):
i na serwerze
Teraz
variable
będzie miał zaszyfrowane dane.źródło