• 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.

Cloud VPS
0 głosów
1,373 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ź 367 wizyt
0 głosów
1 odpowiedź 1,359 wizyt
0 głosów
2 odpowiedzi 1,412 wizyt
pytanie zadane 14 lutego 2016 w JavaScript przez makoso Mądrala (7,380 p.)

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

62,834 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

Kursy INF.02 i INF.03
...