Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> JSON przekazanie tablicy z PHP do JS
Resurrection
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

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


Witam. Chcę przekazać tablicę z php do js
Tablica jest zapisywana w pętli :
Kod
....
$_SESSION['tabOne'][]=$_FILES['polePrzekaznika']['name'][$j];
...

następnie zamieniam ją na obiekt JSON:
Kod
$objJSON=array();
$objJSON=json_encode($_SESSION['tabOne']);

kolejny krok to zamiana w stworzonym ciągu znaku ' na " . Zmiana następuję ponieważ doczytałem się że objekt JSON w PHP od tego samego obiektu w JS różni się formą zapisu.
Kod
$objJSONConvert=str_replace("\"","'",$objJSON);

w kolejnym kroku wywołuje między innymi funkcje JS do której ma być przekazana tablica.
Kod
echo'<script type="text/javascript">document.getElementById(\'information\').innerHTML=\''.$inf.' \';wstawInfo('.$objJSONConvert.')</script>';

W funkcji JS wykonuje:
Kod
function wstawInfo(tabOneJS)
  {
      var tOJS=JSON.parse(tabOneJS);
         .....
}

i właśnie tu wyrzuca mi błąd:
Błąd: JSON.parse: unexpected character
Co wykonuje źle? Proszę o wskazówki.
Go to the top of the page
+Quote Post
Pacio
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 27
Dołączył: 30.10.2005
Skąd: Lublin

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


Twoj str_replace zamienia " na '.


--------------------
Mój Blog Militarny: http://1rBlog.pl
Go to the top of the page
+Quote Post
Resurrection
post
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

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


Źle opisałem. Czy tak czy tak błąd jest ten sam :-(
Go to the top of the page
+Quote Post
Pacio
post
Post #4





Grupa: Zarejestrowani
Postów: 105
Pomógł: 27
Dołączył: 30.10.2005
Skąd: Lublin

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


Sprawdz w zrodle strony jak wyglada JSON wrzucony przez PHP, obejmij go cudzyslowami:
  1. wstawInfo("'.$objJSONConvert.'")


--------------------
Mój Blog Militarny: http://1rBlog.pl
Go to the top of the page
+Quote Post
Resurrection
post
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

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


Przy jednym elemencie w tablicy:
["nazwa.jpg"]

po wstawieniu w cudzysłów:
Kod
echo'<script type="text/javascript">document.getElementById(\'information\').innerHTML=\''.$inf.' \';wstawInfo("'.$objJSONConvert.'");</script>';

otrzymuje błąd :
Błąd: missing ) after argument list
Kod źródłowy:
document.getElementById('information').innerHTML='ładowanie zostało zakończone ';wstawInfo("["IMG_5796.JPG"]");
Go to the top of the page
+Quote Post
Pacio
post
Post #6





Grupa: Zarejestrowani
Postów: 105
Pomógł: 27
Dołączył: 30.10.2005
Skąd: Lublin

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


W JSON sa cudzyslowy, wiec obejmij go apostrofami:
  1. wstawInfo(\''.$objJSONConvert.'\')


--------------------
Mój Blog Militarny: http://1rBlog.pl
Go to the top of the page
+Quote Post
Resurrection
post
Post #7





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

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


Dziękuję za pomoc.Tylko nie wiem dlaczego w ten sposób.
Go to the top of the page
+Quote Post
Pacio
post
Post #8





Grupa: Zarejestrowani
Postów: 105
Pomógł: 27
Dołączył: 30.10.2005
Skąd: Lublin

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


Jako parametr funkcji podajesz string, wiec musi byc on w cudzyslowach lub apostrofach. Bez tego JS potraktuje parametr jak zmienna:
  1. wstawInfo(zmienna);

  1. wstawInfo('jakis string');

Dopiero JSON.parse robi z tego strina obiekt.


--------------------
Mój Blog Militarny: http://1rBlog.pl
Go to the top of the page
+Quote Post
kiler129
post
Post #9





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


A ja zapytam po co kombinować? Sam json_encode generuje ładny JSON trawiony bez str_replace w JS ;]


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
absflg
post
Post #10





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.11.2011

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


Nic nie trzeba zmieniać. PHP generuje zgodny ze standardami JSON. Jeżeli pozmieniasz cudzysłowy na apostrofy to uzyskasz błędny JSON (np. jQuery odrzuca kod z apostrofami).

Swoją drogą - nie wiem skąd ci przyszedł do głowy tak absurdalny pomysł, że niby funkcje dostarczane z PHP mogą działać błędnie...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 07:00