Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]load() problem
Forum PHP.pl > Forum > Przedszkole
Salur
Witam, czemu podczas uzywania funkcji load(); Nie działa w plikach wczytywanych, ani include, require_once. Po wpisaniu require_once('connect.php'); nie wczytuje wgl zakładki. Co mam zrobic? przecież muszę jakoś wczytać połaczenie z baza i funkcje.

EDIT: Drugie pytanie, co zrobić aby po zmianie zakładki we wczytytywanym divie nie zostawał tekst z innej zakładki.

http://api.jquery.com/load/
toaspzoo
? Strasznie niezrozumiale to ująłeś.
require_once to php a .load to jquery, więc dwie różne rzeczy.
Przy użyciu metody .load(<addr>) nadpisze ona zawartość diva, o ile oczywiście zdoła pobrać stronę.
Salur
Okej, jasniej. Zrobiłem sobie zakładki wczytywane przez load do diva. Treści zakładek z plików w folderze /pages/ normalnie sie wczytuje. Dopiero gdy w tym pliku pobieranym z /pages/ do diva użyję na górze require_once lub include to nie wczytuje wgl zakładki. Potrzebuję wczytać pliki od połączenia z bazą i funkcje. Jeśli skopiuję do pliku zawartość pliku z połączeniem z baza to działa normalnie. Więc w czym problem?
toaspzoo
Jakiś kod dasz czy dalej bawimy się we wróżenie z fusów? happy.gif
Salur
Kod wczytywania:

  1. <script type="text/javascript">
  2. function loadPage(file) {
  3. $('#content').load(file);
  4. console.log(file);
  5.  
  6. }
  7. console.log(location.hash.length);
  8. if(location.hash.length > 1)
  9. loadPage('pages/' + location.hash.substring(1) + '.php');
  10. </script>


Przykładowa zakładka która nie działa. Bo uzyłem w niej require_once.

  1. <?php
  2. require_once('inc/connect.php');
  3. require_once('inc/function.php');
  4. ?>
  5.  
  6. Treśc zakładki.
toaspzoo
A co ma wyświetlać, skoro użyłeś ob_start()?

Cytat z manuala:
Kod
This function will turn output buffering on. While output buffering is active no output is sent from the script (other than headers), instead the output is stored in an internal buffer.
Salur
Usunołem, w pliku do wczytania na górze zostało tylko to, i nadal nie działa.

  1. <?php
  2. require_once('inc/connect.php');
  3. require_once('inc/function.php');
  4. ?>

toaspzoo
A co w tych plikach jest? (zakryj hasła)
Salur
Zostawiłem tylko połaczenie z bazą wiec kod wygląda tak:

  1. <?php
  2. require_once('inc/connect.php');
  3. ?>


connect.php

  1. <?php
  2.  
  3. $connection = mysql_connect('****', '*****', '****')
  4.  
  5. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  6.  
  7. mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
  8.  
  9. $db = mysql_select_db('system', $connection)
  10.  
  11. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  12.  
  13. ?>


PS: Jeśli wczytuję normalnie zakładki to wszystko jest okej, tylko jeżeli robię to przez load() to sa problemy.
toaspzoo
Czemu służą te przerwy pomiędzy liniami 3-5, 7-9, 9-11??
Salur
To tylko dla przejrzystości. One na nic nie wpływają.
toaspzoo
Wywal wszystko z plików i spróbuj wpisać cokolwiek i sprawdź, czy wyświetla.
Salur
Zrobiłem nowy plik tylko z echo i po uzyciu require_once dalej nie działa.
toaspzoo
A całkowicie bez użycia php rozumiem, że działa? Podglądnij, co konsola wypluwa.
Comandeer
Jeśli jest samo ob_start to bufor jest wyrzucany do stdout przy zakończeniu skryptu

Co do problemu: zapewne masz wyłączone wyświetlanie błędów. Inaczej byś zobaczył, że ścieżki do plików są błędne albo np. PHP rzuca się o chmodu. Strzelam, że katalog inc jest powyżej pages, więc wypada zmienić ścieżkę na odpowiednią (choćby ../inc/plik.php)
Salur
Głupi błąd ze ścieżkami. Dziękuje za pomoc.

-------------------------------------------------------------

Drugi problem:

Wcześniej zakładki wczytywałem przez php wiec url wyglądał tak:

  1. localhost/game.php?s=umiejetnosci


Teraz wczytuję przez load() więc wygląda tak:

  1. localhost/game.php#umiejetnosci


Co mam teraz zrobić aby mi działał ten skrypt?

  1. // przyjmuje wartosc
  2.  
  3. localhost/game.php#umiejetnosci&upgrade
  4.  
  5. if (isset($_GET['upgrade'])) {
  6.  
  7. }


ref
nospor
localhost/game.php?upgrade=1#umiejetnosci

swoją drogą co ma load do zmiany adresu? Nic.
Salur
Niestety nie działa.

Dodatkowo przy zmienie zakładki w url zostaje np. ?przyjmij#czat (samo czat sie zmienia) jak to mogę czyścic?
  1. $akcept = "<a href='game.php?przyjmij=".$q['id']."#misje'>Przyjmij</a>";
  2.  
  3. if (isset($_GET['przyjmij'])) {
  4.  
  5. echo 'cos';
  6.  
  7. }
Comandeer
W obecnej postaci chyba najprościej byłoby Ci wprowadzić coś typu hashbangów… ale to dość poroniony pomysł tak czy inaczej. Osobiście proponowałbym poczytać o History API i raczej to przebudować jakoś.
nospor
Dopeiro co mowiles ze robisz load, teraz widze ze jednak link normalny... link normalny nie zadziala, bo on po kliknieciu w hash przesuwa strone na hash...

Chyba ze ty jsem przechwytujesz ten link i jednak ajaxa wykonujesz recznie. To w czym problem? Nie pisz ze "nie dziala" tylko spojrz co sle ajax. Zacznij troche samodzielnie cos robic. To co sle ajax sprawdzisz w Firebugu
toaspzoo
Nie możesz wczytywać skryptu php z parametrem przeznaczonym do obsługi przez przeglądarkę. W grę wchodzi tylko metoda get lub post (wtedy nie korzystasz z .load).
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.