Jak wywołać funkcje php za pomocą funkcji javaScript?

Jak wywołać funkcje php za pomocą funkcji javaScript?
TomDom
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Białystok
  • Postów:191
0

kliknięcie na przycisk uruchamia mi funkcję javaScript i chciałbym aby ta funcja uruhcomiła innafukcję w pliku php

plik php path = 'php/plik.php';

Kopiuj
function funkcjaPHP(){
      echo '<script>console.log("wykonano:  funkcjaPHP()");</script>';
}

plik javascript

Kopiuj
function funkcjaJS() {
    console.log('wykonano funkcjaJS');  // i jakieś inne operacje
   

//nie wiem jak wywołać funkcję php
    uruchom.funkcjaPHP('php/plik.php');
}

w pliku index.php wczytalem plik.php

Kopiuj
require_once 'php/plik.php';

więc funkcja jest widoczna

axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 13 godzin
  • Lokalizacja:Warszawa
  • Postów:2252
1

Funkcji/metody nie wykonasz. Możesz za to posłużyć się ajaxem.

LukeJL
dałoby się, gdyby zaimplementować jakiś prosty system RPC, rzecz w tym, że na tym poziomie wiedzy i ogarnięcia OPa (szukam i nie umiem znalezc) raczej byłby to overkill. Ale w sumie pytanie jest jak wywołać funkcję PHP za pomocą funkcji JS, więc opisałem niżej sposób XD
TomDom
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Białystok
  • Postów:191
0

czy mógłby ktoś wskazać jakiś bardzo prosty przykład??

Patryk27
Dlaczego nie wpiszesz w Google PHP Ajax i nie poszukasz sam?
TomDom
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Białystok
  • Postów:191
0

szukam i nie umiem znalezc

elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:26 dni
0

To poczytaj o AJAX to zrozumiesz.


Taraj2
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 4 lata
  • Postów:2
0
NO
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:654
2
Taraj2 napisał(a):

https://www.w3schools.com/php/php_ajax_php.asp

Tutaj masz przykładowe połączenie JS i PHP ;)

Kopiuj
<script>
$(document).ready(function () { 
    var interval = 20000;   
    var refresh_audition1 = function() {
        $.ajax({
            url: "php/box.php",
            cache: false,
            success: function(html) {
                $('.ajax_front_box1').html(html);
                setTimeout(function() {
                    refresh_audition1();
                }, interval);
            }
        });
    };
});
</script> 
LukeJL
trzeba wspomnieć, że jest to pisane z użyciem biblioteki jQuery, którą trzeba dołączyć do skryptu. Sam ten kod nie zadziała przecież bez jQuery
LukeJL
  • Rejestracja:ponad 11 lat
  • Ostatnio:2 minuty
  • Postów:8423
0

kliknięcie na przycisk uruchamia mi funkcję javaScript i chciałbym aby ta funcja uruhcomiła innafukcję w pliku php

Jeśli JavaScript odpala się w przeglądarce, a PHP jest na serwerze, to znaczy, żeby wywołać funkcję PHP musiałbyś ją wywołać zdalnie. Przez internet musiałyby lecieć dane z nazwą funkcji, parametrami itp. żeby serwer wiedział co ma uruchomić (to, że coś piszesz w jednym pliku, nie znaczy, że uruchomi się razem!).

To o co pytasz, potraktowane dosłownie, byłoby możliwe przez RPC (remote procedure calling), jednak wymagałoby to specjalnych zabiegów, odpowiedniej infrastruktury, np.

  1. skrypt JS w przeglądarce odpala funkcjaPHP('NAZWA FUNKCJI)
  2. lecą dane przez internet (AJAX)
  3. serwer odbiera dane, wywołuje funkcję PHP o podanej nazwie
  4. funkcja PHP wywołuje się
  5. serwer zwraca odpowiedź do przeglądarki -
  6. skrypt JS w przeglądarce ją odbiera i zwraca wynik, np. wywołując odpowiedni callback

Tylko, że w większości przypadków nie byłoby ci to w ogóle potrzebne, szczególnie, że implementacja RPC byłaby trochę trudniejsza niż sam AJAX (a jeśli sam AJAX stanowi problem...).

Radziłbym raczej zmienić pytanie i zamiast pytać o wywołanie funkcji PHP z poziomu JS, to zapytałbym o to "w jaki sposób przesłać dane z JS do PHP i odwrotnie?", czyli np. wspomnianym już AJAXem (są biblioteki do tego, np. jQuery).


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.