Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][jQuery]Problem z json...
Forum PHP.pl > Forum > Przedszkole
Fifi209
Chciałem, aby newsy na stronie były pobierane z serwera w postaci json tak więc skrypt generuje mi kod:

Kod
{"news": [
{"id": 1, "author": "fifi", "subject": "cos tam"},
{"id": 2, "author": "fifi", "subject": "cos sdtam"},
{"id": 3, "author": "fifi", "subject": "cos sdftam"},
{"id": 5, "author": "fifi", "subject": "cosdfs tam"}
]}


I teraz zabawa w jQuery:
[JAVASCRIPT] pobierz, plaintext
  1. $.getJSON('http://localhost/news/ajax/',
  2. function(data) {
  3. $.each(data.news,
  4. function(i ,item) {
  5. alert(i);
  6. }
  7. );
  8. }
  9. );
[JAVASCRIPT] pobierz, plaintext


I jakoś nie umiem sobie poradzić z tym...
erix
No i co się dzieje?
Fifi209
Cytat(erix @ 15.11.2009, 19:13:17 ) *
No i co się dzieje?


nic, żadnego błędu, ale również żadnego alerta nie wyświetla. Czy są jakieś znaki, których w json nie można użyć? np. tagi html'a ? Liczby nie muszą być w "" prawda?
vokiel
Te dane tworzysz przez json_encode?
A firebug co pokazuje?

BTW.
W firebugu, w konsole wrzuciłem ten kod, i wszystko działa.
[JAVASCRIPT] pobierz, plaintext
  1. var json = {"news": [
  2. {"id": 1, "author": "fifi", "subject": "cos tam"},
  3. {"id": 2, "author": "fifi", "subject": "cos sdtam"},
  4. {"id": 3, "author": "fifi", "subject": "cos sdftam"},
  5. {"id": 5, "author": "fifi", "subject": "cosdfs tam"}
  6. ]};
  7. console.log(json);
  8. $.each(json.news,
  9. function(i ,item) {
  10. alert(i +' | '+item.subject);
  11. }
  12. );
[JAVASCRIPT] pobierz, plaintext
Fifi209
Te dane tworzę ręcznie...

Dokładnie mam coś takiego:
Kod
{"news": [{"author": "Fast", "subject": "Czas online", "content": "Dodałem możliwość mierzenia czasu online, na trzech serwerach. Czas będzie jedynie sumowany, a na stronie będzie wyświetlane top 50 wszystkich czasów.", "id": "7", "count": "0"},{"author": "Fast", "subject": "Wyszukiwarka", "content": "Do wyszukiwarki dla postaci na serwerze 7.6 dodałem zmianę exp w dany dzień, dodatkowo po kliknięciu na exp wysunie nam się okienko, w którym możemy policzyć ile zabiliśmy danych potworów.", "id": "6", "count": "0"},{"author": "Fast", "subject": "Galeria", "content": "Dodałem galerię, od teraz można dodać i oglądać zdjęcia. :)
<br/><br/>
Uwaga! Minimalna wielkość zdjęcia to:<br/>
101x101 px<br/><br/>
Zdjęcia można dodawać jedynie w formacie <b>png</b> i ta opcja jest dostępna tylko dla zarejestrowanych użytkowników.", "id": "5", "count": "0"},{"author": "Fast", "subject": "Rejestracja", "content": "Od tej chwili można się już rejestrować w serwisie.", "id": "4", "count": "0"},{"author": "Fast", "subject": "Komentarze", "content": "Dodana możliwość komentowania wiadomości.", "id": "3", "count": "0"}]}


@up
To co Ty podałeś działa w firebugu jak testowałem to co ja mam już nie...
vokiel
To wina danych, po przejrzeniu całej zmiennej, usunięciu przecinków, kropek, tagów html itd zadziałało. Może usunąłem za dużo, wystarczyłoby może same przecinki, ale nie chciało mi się sprawdzać różnych wersji smile.gif

Proponuję użyć json_encode ma on kilka parametrów umożliwiających kodowanie znaków specjalnych, tagów html etc
Fifi209
Użyłem json_encode i zrozumiałem gdzie leży błąd... mam index'a o zawartości:
  1. <?php
  2.  
  3.  
  4. include('./config.php');
  5. include('html/header.html');
  6.  
  7. if ($_GET['action']) {
  8. if (file_exists('actions/'.$_GET['action'].'.php')) {
  9. include_once('actions/'.$_GET['action'].'.php');
  10. }else{
  11. echo 'Not Found';
  12. }
  13. }else{
  14. include_once('actions/news.php');
  15. }
  16.  
  17.  
  18. include('html/footer.html');
  19.  
  20.  
  21. ?>


Oczywiście html się tam dostawał... Wszystko 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-2024 Invision Power Services, Inc.