Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MVC][JQuery] Problem z przekazaniem danych do kontrolera
Forum PHP.pl > Forum > Przedszkole
PHPapprentice
Witam

Wyczytałem w Internecie że Kontroler w MCV jest odpowiedzialny za odbieranie danych od użytkownika. Próbuje przesłać do kontrolera dane wpisane przez użytkonika w formularzu ale wywołuje się tylko na końcu funkcja error metody $.ajax. Może pokaże kod :

Kod
            $.ajax({
              type: 'POST',
              url: 'http://www.jakasstrona.pl/index.pl?strona=uzytkownicy',
              data: {                
                 login: hLogin_u,
                 nazwa_oddzialu: hNazwaOddzialu,
                 haslo: hPassword,
                 nazwa: hNazwa_u,
                 tylkozIp: hTylkoIP,
                 uprawnienia: myDataCheck
              },
              timeout: 5000,
              cache: false,
              success: function(msg){
                 alert('Zapytanie zakonczylo sie sukcesem! Zwrócone dane to '+msg);
              },
              beforeSend: function() {
                                      
                    $('#errorDiv').show();
                    
                    //alert('zaraz wysle sie ajax');    
              },
              error: function(){
                 $('#errorDiv').html('<p>Przepraszamy wystąpił błąd!</p>').show();    
                
                 //alert('error nastapil');              
              }
          });


Próbuje wywoływać funkcje print_r($_POST) żeby zobaczyc jak wygląda tablica POST po przekazaniu danych , jednak tablica zawsze jest pusta.

Myślę że kod jest prawidłowy oprócz znacznika "url".

Czy mógłby mi ktoś powiedzieć jaki mam wpisać url żebym mógł te dane przesłąć do kontrolera. Załóżmy że kontroler znajduje się w katalogu "/glowny/" i jego nazwa to kontroler.php.

Z góry dzięki za pomoc biggrin.gif
Turson
Nie wiemy jaki masz kontroler, czy akcja jest prawidłowa. Wchodząc bezpośrednio w link, który znajduje się w url pojawia się strona choćby pusta a nie błąd 404?
-phpapprentice-
Cześć.

Po pierwsze dzięki za zainteresowanie smile.gif.

Po wpisaniu ten url , w przeglądarce wyświetla się albo strona do tego przeznaczona czyli np. uzytkownicy.php, albo wyswietla się panel logoania do panelu administracyjnego. To jest kiedy nie bylismy zalogowani czyli kiedy zmienne sesyjne nie były ustawione.

Co do kontrolera to kod jest poniżej :

Kod
class Controller // kontroler
{
    // składowe
    private $strona;
    private $model;
    private $widok;

    // konstruktor
    public function __construct()
    {
        $this->zaladujModel();
        $this->pobierzDane();
        $this->zaladujWidok();
        $this->uruchomWidok();
    }
    // załadowanie odpowiedniego modelu
    private function zaladujModel()
    {
        if (Autoryzacja::czyZalogowany() == false)
        {
            $this->strona = "logowanie";
        }
        else
        {
            if (!isset($_GET['strona']))
            {
                $this->strona = "glowna";
            }
            else
            {
                            $this->strona = Narzedzia::security_get($_GET[strona]);
                            global $baza;
                            $baza->execute("SELECT 1 FROM wiadomosci WHERE wiadomosci.pracownik in (1,8) AND
                            NOT EXISTS
                                (SELECT 1 FROM wiadomosci_przeczytania WHERE wiadomosc=id_wiadomosci AND
                                pracownik=$_SESSION[zalogowany_id_c9])");
                            if ($baza->count() > 0)
                            {
                                $this->strona = "glowna";
                            }                                
            }
                        
        }
    $dane = array("logowanie","glowna","dodajw","kalkulator","hasla","zarzadzaj","edycja","chat","skan","logi","ajax_logi","kalendarz","ajaxkalendarz","uzytkownicy");
    if (!in_array($this->strona,$dane))
    {
      $this->strona = "glowna";
    }
        $this->model = new $this->strona();
    }
    // załadowanie danych przez model
    private function pobierzDane()
    {
        $this->model->zaladujDane();
    }
    // załadowanie odpowiedniego widoku
    private function zaladujWidok()
    {
        $w = $this->strona."_widok";
        $this->widok = new $w($this->model);
    }
    // uruchomienie widoku
    private function uruchomWidok()
    {
        $this->widok->wyswietl();    
    }
  
}


Chciałbym dane z formularza przesłać do tego kontrolera. Nie myle się? Trzeba je przesłać do kontrolera ? Chciałbym że dane przesłane metodą $.ajax() jquery można było odebrać i zapisać w bazie danych.

Z tego co wyczytałem w Internecie to kontroler jest odpowiedzialny za odbieranie danych w MCV , więc pytamie brzmi jak przesłać dane z fomularza za pomoca tej funkcji $.ajax do kontrolera?

Jeśli w czymś się mylę poprawcie mnie smile.gif

Pozdrawiam
Pyton_000
generalnie powinno zadziałać. Jak URL daj "/index.php?strona=urzytkownicy"

A jeżeli odpalisz taki URL to działa ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.