Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
Prosím o radu.
Ajaxem mi přijde tento řetězec: ['Item1','Item2','Item3','Item4'] Jak lze v javascriptu z toho udělat skutečné pole: tzn. tento problém: var response = "['Item1','Item2','Item3','Item4']"; //string var actualArray = eval(['Item1','Item2','Item3','Item4']); // jak udělat správně eval, aby se do promenné acrualArray načetlo skutečné pole jako kdybych zadal přímo var actualArray = ['Item1','Item2','Item3','Item4']; ?? To eval tady hází chybu. Nevím jak to udělat správně. Prosím o řešení s tím, že mi skutečně přijde ajaxem řetězec: "['Item1','Item2','Item3','Item4']" .
Řešení, který obsahují v PHP json_encode() nějak nerespektuje UTF-8..
|
||
Alphard Profil |
#2 · Zasláno: 28. 9. 2016, 01:31:21
quatzael:
„Řešení, který obsahují v PHP json_encode() nějak nerespektuje UTF-8..“
Hmm, možná bych doporučil spíš položit dotaz, jak v PHP vytvořit JSON obsahující utf-8 znaky. A rovnou tam napiš, jakou máš verzi PHP. |
||
quatzael Profil |
Alphard:
No dobře. Verze je PHP Version 5.3.29. Jak tedy vytvořit JSON obsahující utf-8 znaky? A jak to potom v javascriptu správně rozparsovat? Jo a json version je 1.2.1 |
||
Alphard Profil |
#4 · Zasláno: 28. 9. 2016, 02:11:56
quatzael [#3]:
Ta historická verze je nešťastná. Od PHP 5.4 je tady volba JSON_UNESCAPED_UNICODE , která to řeší. V nižších verzích je to potřeba vyřešit nějak uživatelsky. Buď tento workaround php.net/manual/en/function.json-encode.php#112020, nebo si požadovaný JSON naformátovat ručně (pro ploché pole stringů je to triviální).
|
||
quatzael Profil |
Alphard:
Ok, klidně ručně. Stačí takhle: "{['Item1','Item2','Item3','Item4']}" ?
Nebo to vždycky musí být k něčemu přiřazený? "{'values' : ['Item1','Item2','Item3','Item4']}" |
||
Alphard Profil |
#6 · Zasláno: 28. 9. 2016, 02:31:28
Stačí jako předtím, jen se pro JSON musí používat uvozovky, ne apostrofy.
alert(JSON.parse('["jedna","dve","tri"]')); |
||
quatzael Profil |
#7 · Zasláno: 28. 9. 2016, 03:22:11
Alphard:
Funguje, díky moc!! |
||
Časová prodleva: 9 let
|
0