Jak dodać funkcję php do Ajax

0

Siema, szukam sposobu aby dodać funkcję z zewnętrznego pliku php do ajax. Poniżej kod:


    <script type="text/javascript">
       
        var cacheData;
        var data = $("#temp").html();
        var auto_refresh = setInterval(
                function () {
                    $.ajax({
                        url: 'get_data.php',
                        method: 'POST',
                        data: data, 
                        dataType: 'html',
                        success: function (data) {
                            if (data !== cacheData) {
                                cacheData = data;
                                $("#temp").html(data);
                            }
                        }
                    })
                }, 300
                );
       
    </script>

Plik php get_data.php

<?php

require 'connectDB.php';

function act_tmp($con){
    $result = $con->query("SELECT temp FROM temperature ORDER BY temp DESC LIMIT 1") or die(mysqli_error($con));

    while ($row = mysqli_fetch_array($result)) {
        $data = array(
            "act_temp" => $row[0]
        );
        return $data['act_temp'];
    }
    mysqli_close($con);
}

Proszę o pomoc!

0

Skąd ajax ma wiedzieć jaką funkcję wywołać? act_tmp() powinno zostać wywołane i wtedy powinno działać. Aaa i jeszcze widzę że funkcja ma parametr - on też musi zostać przekazany (podejrzewam, że zadeklarowałeś to jakoś w pliku connectDB)

0

Domyślałam się że taki wpis był by ok

<?php act_tmp($con); ?>

jednak nie wiem gdzie powinien być umiejscowiony w ajaxie. Kombinowałem z tą linią

data: { data: <?php act_tmp($con); ?>} , 

jednak nie wyszło. Z dokumentacji .ajax wynika że "data" to dane gotowe do wysłania na serwer więc nie dziwi mnie fakt, iż to nie zadziałało. axelbest jak byś mnie naprowadził to był bym wdzięczny!

0

Musisz tę funkcję wywołać z poziomu PHPa.

JS nie ma żadnego pojęcia o tym, że po stronie serwera działa PHP, ani tym bardziej, że ma jakieś funkcje - z punktu widzenia JSa jest to po prostu pewne żądanie (request) do serwera i tyle.

0

Gdzieś na YouTube znalazłem taki zapis:

 <form action="" method="post">
        <input type="button" value="Hit Me" onclick="on_callPHP()" />
    </form>
    
    <script type="text/javascript">
       function loadActTemp(){
           var result = "<?php php_func(); ?>";
           console.log(result);
           return false;
       }
       
     <?php
        function php_func(){
            echo "hello";
        }
     
     ?>

pięknie to działa, u mnie problem polega na tym, iż nie do końca rozumiem gdzie w ajax powinno być wywołanie funkcji php

0

Tutaj nie ma żadnego wywołania ajaxowego - kliknij sobie w przeglądarce Pokaż źródło, to zobaczysz całą magię ;-)

Na marginesie: do podpięcia się pod onclick nie jest wcale wymagana formatka.

0

Patryk27 widzę, że nie ma tu ajaxa tylko js. Napisałem tylko że znalazłem w necie sposób na wrzucenie funkcji php do skryptu nie pisałem nic o ajaxie, dopiero w dalszej części przypomniałem na czym polega mój problem. Chodzi mi o merytoryczne rozwiązanie mojego problemu a nie o nabijanie postów i stratę czasu. Patryk27 zapoznaj się proszę najpierw od początku z problemem. Pozdro!

1 użytkowników online, w tym zalogowanych: 0, gości: 1