Salur
27.07.2015, 22:16:35
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
27.07.2015, 22:52:23
? 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
27.07.2015, 22:59:05
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
27.07.2015, 23:01:32
Jakiś kod dasz czy dalej bawimy się we wróżenie z fusów?
Salur
27.07.2015, 23:04:29
Kod wczytywania:
<script type="text/javascript">
function loadPage
(file) { $
('#content').load
(file);
}
console.log(location.hash.length);
if(location.hash.length > 1)
loadPage('pages/' + location.hash.substring(1) + '.php');
</script>
Przykładowa zakładka która nie działa. Bo uzyłem w niej require_once.
<?php
require_once('inc/connect.php');
require_once('inc/function.php');
?>
Treśc zakładki.
toaspzoo
27.07.2015, 23:07:25
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
27.07.2015, 23:08:37
Usunołem, w pliku do wczytania na górze zostało tylko to, i nadal nie działa.
<?php
require_once('inc/connect.php');
require_once('inc/function.php');
?>
toaspzoo
27.07.2015, 23:09:27
A co w tych plikach jest? (zakryj hasła)
Salur
27.07.2015, 23:11:06
Zostawiłem tylko połaczenie z bazą wiec kod wygląda tak:
<?php
require_once('inc/connect.php');
?>
connect.php
<?php
or
die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
or
die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
?>
PS: Jeśli wczytuję normalnie zakładki to wszystko jest okej, tylko jeżeli robię to przez load() to sa problemy.
toaspzoo
27.07.2015, 23:13:13
Czemu służą te przerwy pomiędzy liniami 3-5, 7-9, 9-11??
Salur
27.07.2015, 23:14:24
To tylko dla przejrzystości. One na nic nie wpływają.
toaspzoo
27.07.2015, 23:15:37
Wywal wszystko z plików i spróbuj wpisać cokolwiek i sprawdź, czy wyświetla.
Salur
27.07.2015, 23:17:58
Zrobiłem nowy plik tylko z echo i po uzyciu require_once dalej nie działa.
toaspzoo
27.07.2015, 23:19:45
A całkowicie bez użycia php rozumiem, że działa? Podglądnij, co konsola wypluwa.
Comandeer
27.07.2015, 23:19:55
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
28.07.2015, 12:50:09
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:
localhost/game.php?s=umiejetnosci
Teraz wczytuję przez load() więc wygląda tak:
localhost/game.php#umiejetnosci
Co mam teraz zrobić aby mi działał ten skrypt?
// przyjmuje wartosc
localhost/game.php#umiejetnosci&upgrade
if (isset($_GET['upgrade'])) {
}
ref
nospor
28.07.2015, 12:54:02
localhost/game.php?upgrade=1#umiejetnosci
swoją drogą co ma load do zmiany adresu? Nic.
Salur
28.07.2015, 13:18:10
Niestety nie działa.
Dodatkowo przy zmienie zakładki w url zostaje np. ?przyjmij#czat (samo czat sie zmienia) jak to mogę czyścic?
$akcept = "<a href='game.php?przyjmij=".$q['id']."#misje'>Przyjmij</a>";
if (isset($_GET['przyjmij'])) {
}
Comandeer
28.07.2015, 13:42:15
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
28.07.2015, 14:05:37
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
28.07.2015, 14:33:14
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.