Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jQuery $.get wyświetla jeszcze raz layout i akcję kontrolera.
callwith
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.11.2011

Ostrzeżenie: (0%)
-----


Mam taki problem, w prostym frameworku PHP MVC, gdy za pomocą funkcji jQuery w widoku pobieram dane z kontrolera to oprócz tych danych wyświetla się jeszcze raz layout i akcja, problem wynika pewnie z tego że za pomocą URL w rzeczonej funkcji jQuery uruchamiam jeszcze raz tę funkcję krórej wywołanie jest w pliku php inicjujacym działanie frameworku;
  1. public function run($action, $params = array())
  2. {
  3. $this->setParams($params);
  4. $this->_templateName = $action;
  5. $this->setContext('title', ucfirst($this->_getControllerShortName()) . ' - ' . $action);
  6. $methodName = $action . 'Action';
  7. if (method_exists($this, $methodName)) {
  8. $this->$methodName();
  9. extract($this->_context);
  10. // tu jest require dla layout'u, może ktoś wie jak powiedzieć php żeby ponownie nie uruchamiać tego require'a, domyślam się ze trzeba zastosować odpowiednią instrukcję warunkową, ale jak ma wyglądac to niestety nie wiem, dlatego proszę o pomoc
  11. require_once PROJECT_DIRECTORY . DIRECTORY_SEPARATOR . 'views' .
  12. DIRECTORY_SEPARATOR . 'layouts' . DIRECTORY_SEPARATOR .
  13. $this->_layoutName . '.phtml';
  14. } else {
  15. $controller->run('notfound', $this->getParams());
  16. }
  17. }


może będzie ktoś w stanie mi doradzić jak sobie z tym poradzić;
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


ZF-owa metoda isXmlHttpRequest() to nic innego jak sprawdzenie zawartości superglobalnej tablicy $_SERVER pod kątem obecności odpowiedniego nagłówka. Jeśli ten framework nie implementuje odpowiedniej metody, to w PHP robisz tak:
  1. if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
  2. // zwracamy dane w odpowiadającej nam formie i zatrzymujemy działanie skryptu, żeby nie dopytywał się o layout i widok
  3. die();
  4. } else {
  5. // renderujemy layout i widok
  6. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.09.2025 - 06:47