• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Wywołanie funkcji php za pomocą AJAX.

Object Storage Arubacloud
0 głosów
1,039 wizyt
pytanie zadane 25 sierpnia 2018 w JavaScript przez nielotweb Bywalec (2,240 p.)
zamknięte 25 sierpnia 2018 przez nielotweb

Cześć,

Mam buton w html'u. Po kliknięciu na niego ma się wykonać funkcja php, więc wpadłem na pomysł żeby zrobić to dzięki Ajax'owi. Problem jest taki że nie wiem jak ją wywołać gdy jest ona w jakieś klasie. Tzn... Albo w sumie najpierw pokaże co zrobiłem:

HTML i AJAX:

<button class="confirm-rules" type="button" onclick="sendStatus('accept_rules')">Rozumiem</button>


  <script type="text/javascript">
        function sendStatus(status) {
            $.ajax({
                method: "POST",
                url: "Controllers/Core/Dashboards/Admin/Dashboard.php",
                data: { status: status }
            }).done(function( msg ) {
                alert("Cookie saved:" + msg );
            });
        }
    </script>

PHP:

<?php

declare(strict_types=1);

namespace App\Controllers\Core\Dashboards\Admin;

use App\Controllers\Controller;

use App\Core\SessionManagement;
use App\Core\Request;
use App\Core\Cookies;

class AdminDashboard extends Controller
{

    private $session;
    private $cookies;
    private $request;


    /**
     * AdminDashboard constructor.
     * @param SessionManagement $sessionManagement
     * @param Cookies $cookies
     * @param Request $request
     */
    public function __construct(SessionManagement $sessionManagement, Cookies $cookies, Request $request)
    {
        $this->session = $sessionManagement;
        $this->cookies = $cookies;
        $this->request = $request;
    }

    public function acceptDashboardBox()
    {
        // ZAWARTOŚĆ PRZYKŁADOWA TO TESTÓW
        if ( isset($_POST['status']) )
        {
            echo $_POST['status'];
        }
    }

    /**
     *
     */
    public function index() : void
    {

        Controller::renderView('Core/Dashboards/Admin/Dashboard');

    }

}

Więc jak mogę wywołać funkcje a raczej metodę która jest w pewnej klasie? Bo gdy robię to tak że tworzę inny plik php i w nim daje tylko echo $_POST['status'] czyli to co wysyła AJAX, działa normalnie.

Czyli button ma onclicka z wywołaniem funkcji js, funkcja JS ma w sobie Ajaxa który wysyła POST'a z zawartością to co jest w buttonie w onclicku czyli: accept_rules do pliku php - metody mianowicie acceptDashboardBox() która to sobie interpretuje. 

Tak wiem troszkę to skomplikowałem ale myślę że wiecie o co chodzi, a jeśli nie to postaram się bardziej to wytłumaczyć.

Z góry dzięki!

komentarz zamknięcia: Zbyt skomplikowane jak dla mnie, za dużo błędów przy tym jest więc odpuszczę i znajdę inny sposób na to.

2 odpowiedzi

0 głosów
odpowiedź 25 sierpnia 2018 przez StOcK Mądrala (6,100 p.)

Wydaje mi się, że jeśli to nie jest klasa statyczna to musisz stworzyć obiekt tej klasy

$panel = new AdminDashboard($session,$cookie,$request);

a następnie wywołać metodę:

$panel->acceptDashboardBox();

 

–1 głos

Podobne pytania

0 głosów
1 odpowiedź 150 wizyt
0 głosów
1 odpowiedź 1,180 wizyt
0 głosów
2 odpowiedzi 1,083 wizyt
pytanie zadane 14 lutego 2016 w JavaScript przez makoso Mądrala (7,380 p.)

92,582 zapytań

141,433 odpowiedzi

319,666 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...