[PHP][MVC][JQuery] Problem z przekazaniem danych do kontrolera |
[PHP][MVC][JQuery] Problem z przekazaniem danych do kontrolera |
7.05.2014, 18:11:50
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 6.03.2014 Ostrzeżenie: (0%) |
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 |
|
|
7.05.2014, 19:50:45
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
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-- |
8.05.2014, 12:46:28
Post
#3
|
Goście |
Cześć.
Po pierwsze dzięki za zainteresowanie . 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 Pozdrawiam |
|
|
8.05.2014, 13:01:07
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
generalnie powinno zadziałać. Jak URL daj "/index.php?strona=urzytkownicy"
A jeżeli odpalisz taki URL to działa ? |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 11:37 |