Autor | Zpráva | ||
---|---|---|---|
pccc Profil * |
#1 · Zasláno: 12. 6. 2011, 14:59:34
Zdravim, jeden webovy skript mi vraci podobny vypis:
SimpleXMLElement Object ( [Klic_ARES] => 1210020247 [ojm] => Jan Novák [jmn] => Brno [poz] => 0 [sh] => 0 ) SimpleXMLElement Object ( [Klic_ARES] => 1210022233 [ojm] => Jan Novák [jmn] => Slavkov [poz] => 0 [sh] => 0 ) Pomoci: $.ajax v Jquery nactu navracenou hodnotu, chtel bych s ni ale pracovat jako s polem, tak abych mohl pouzit neco na zpusob fce each: $.each(data, function(index, value){ alert(value.ojm); }); A tak jednoduse pristupovat k prvkum, zde ale nevim za pomoc Jquery jak to spravne provest? Diky za kazdou pripadnou radu. |
||
Witiko Profil |
#2 · Zasláno: 12. 6. 2011, 15:37:28
pccc:
Pozměň webový script tak, aby navracel JSON objekt. PHP na to má funkci json_encode. Parsování na straně klienta bych prováděl jen v případě nutnosti. |
||
pccc Profil * |
#3 · Zasláno: 12. 6. 2011, 16:37:06
Diky, provedl jsem ale kdyz
zkusim zpracovat dta za pomoci: $.ajax({ type: "GET", url: "http://www.web.cz/dev/overeni-ico/ares.php", //contentType: "application/json; charset=utf-8", //dataType: "json", data: "obchodni_jm="+jmenoSubjektu, cache: false, success: function(data){ $('#writeoutMatches').show(); alert(data); $.each(data, function(index, value){ alert(value.ojm); }); Tak dostanu sice cely vypis ale k prvkum stejne pritupovat nemohu. Kdyz odkomentuji dataType:"json" nedostanu pro zmenu vubec nic vraceneho.. |
||
Witiko Profil |
#4 · Zasláno: 12. 6. 2011, 21:13:56 · Upravil/a: Witiko
pccc:
Tak sem napiš, co ti php script navrací, ať vidíme, jedná-li se o korektní json. |
||
pccc Profil * |
#5 · Zasláno: 13. 6. 2011, 09:55:12
Ukazka>
{"Klic_ARES":"1210005008","ojm":"JAN MAL\u00dd","jmn":"Brno-\u0158e\u010dkovice a Mokr\u00e1 Hora, \u0158e\u010dkovice, Terezy Nov\u00e1kov\u00e9 348\/89","poz":"0","sh":"0"}{"b":"1","Klic_ARES":"1210014690","ojm":"Jan Mal\u00fd","jmn":"Ku\u0159im, Pod Horkou 546","poz":"1","sh":"0"} |
||
Witiko Profil |
#6 · Zasláno: 13. 6. 2011, 14:27:27 · Upravil/a: Witiko
pccc:
Problém je v tomhle: }{ - předáváš dva objekty aniž bys je jakkoliv oddělil / sloučil. Pro sloučení bys musel oba objekty navrátit jako prvky nadřazeného pole / objektu, abys předával jenom jeden JSON objekt:
[{"Klic_ARES":"1210005008","ojm":"JAN MAL\u00dd","jmn":"Brno-\u0158e\u010dkovice a Mokr\u00e1 Hora, \u0158e\u010dkovice, Terezy Nov\u00e1kov\u00e9 348\/89","poz":"0","sh":"0"},{"b":"1","Klic_ARES":"1210014690","ojm":"Jan Mal\u00fd","jmn":"Ku\u0159im, Pod Horkou 546","poz":"1","sh":"0"}] Případně: {0:{"Klic_ARES":"1210005008","ojm":"JAN MAL\u00dd","jmn":"Brno-\u0158e\u010dkovice a Mokr\u00e1 Hora, \u0158e\u010dkovice, Terezy Nov\u00e1kov\u00e9 348\/89","poz":"0","sh":"0"},1:{"b":"1","Klic_ARES":"1210014690","ojm":"Jan Mal\u00fd","jmn":"Ku\u0159im, Pod Horkou 546","poz":"1","sh":"0"}} |
||
pccc Profil * |
#7 · Zasláno: 14. 6. 2011, 09:17:25
Diky, no a muzu to nejak vyresit v ramci fce. json_encode? Nebo musim zvolit jiny postup?
|
||
__construct Profil |
#8 · Zasláno: 14. 6. 2011, 09:28:53
pccc:
„muzu to nejak vyresit v ramci fce. json_encode“ napr. takto: json_encode(array($objekt1,$objekt2));
|
||
pccc Profil * |
#9 · Zasláno: 15. 6. 2011, 10:38:42
Takze bych mel v cyklu prochazet kazdy SimpleXMLElement , na nej pouzit json_encode a vyledek opet ukladat jako pole?
|
||
__construct Profil |
#10 · Zasláno: 15. 6. 2011, 10:51:06 · Upravil/a: __construct
|
||
pccc Profil * |
#11 · Zasláno: 15. 6. 2011, 20:12:26
|
||
Witiko Profil |
#12 · Zasláno: 15. 6. 2011, 20:25:20
pccc:
„mam ted tedy tvar jako v prvnim vypisu v [#6]“ Asi ne, jelikož $.each([{"Klic_ARES":"1210005008","ojm":"JAN MAL\u00dd","jmn":"Brno-\u0158e\u010dkovice a Mokr\u00e1 Hora, \u0158e\u010dkovice, Terezy Nov\u00e1kov\u00e9 348\/89","poz":"0","sh":"0"},{"b":"1","Klic_ARES":"1210014690","ojm":"Jan Mal\u00fd","jmn":"Ku\u0159im, Pod Horkou 546","poz":"1","sh":"0"}], function(index, value){ alert(value.ojm); }); |
||
pccc Profil * |
#13 · Zasláno: 15. 6. 2011, 20:39:40
Jasne, mas pravdu, ten muj vypis je nejaky hybrid mezi temi dvema, vypada takto>
[{"Klic_ARES":"1210020247","ojm":"Jan Nov\u00e1k","jmn":"Brno-Jundrov, Jundrov, Sosnov\u00e1 665\/2","poz":"0","sh":"0"}][{"Klic_ARES":"1210022233","ojm":"Jan Nov\u00e1k","jmn":"Slavkov u Brna, Poln\u00ed 1334","poz":"0","sh":"0"}] Coz mi tak trochu pripada, ze i kdyz jsem ziskal oddeleni pomoci hranatych zavorek, moc jsme si nepomohl.. V php skriptu to pouziti json_encode je reseno takto: foreach ($el->S as $item) { //echo print_r($item, true); echo json_encode(array($item)); //echo $item; } |
||
Witiko Profil |
#14 · Zasláno: 15. 6. 2011, 20:57:32
|
||
pccc Profil * |
#15 · Zasláno: 15. 6. 2011, 21:13:57
No ale kdyz nevim kolik bude hybrid obsahovat prvku, tak takhle?
$stack = array(); foreach ($el->S as $item) { //echo print_r($item, true); //echo json_encode($item); array_push($stack,json_encode($item)); //echo $item; } echo print_r($stack); |
||
Witiko Profil |
#16 · Zasláno: 15. 6. 2011, 21:18:57 · Upravil/a: Witiko
pccc:
Kdeže, přes json_encode pak prožeň nakonec až celé pole. Můžeš to provést až při vypisování, tzn. echo json_encode($stack);
|
||
pccc Profil * |
#17 · Zasláno: 15. 6. 2011, 21:21:53
Jeste jsme tedy na konci zkusil misto print_r
echo json_encode($stack); Coz navratilo uz neco co vyoadalo slibneji ale stale bez uspesneho vysledku ["{\"Klic_ARES\":\"1210020247\",\"ojm\":\"Jan Nov\\u00e1k\",\"jmn\":\"Brno-Jundrov, Jundrov, Sosnov\\u00e1 665\\\/2\",\"poz\":\"0\",\"sh\":\"0\"}","{\"Klic_ARES\":\"1210022233\",\"ojm\":\"Jan Nov\\u00e1k\",\"jmn\":\"Slavkov u Brna, Poln\\u00ed 1334\",\"poz\":\"0\",\"sh\":\"0\"}", |
||
Witiko Profil |
#18 · Zasláno: 15. 6. 2011, 21:24:57 · Upravil/a: Witiko
pccc:
Protože to projíždíš viditelně přes json_encode dvakrát. Použij tento script:
$stack = array(); foreach ($el->S as $item) { array_push($stack, $item); } exit(json_encode($stack)); |
||
pccc Profil * |
#19 · Zasláno: 15. 6. 2011, 21:27:37
Witiko:
Zkusil jsem jak pises a dostal nyni> [{"Klic_ARES":"1210020247","ojm":"Jan Nov\u00e1k","jmn":"Brno-Jundrov, Jundrov, Sosnov\u00e1 665\/2","poz":"0","sh":"0"}, {"Klic_ARES":"1210022233","ojm":"Jan Nov\u00e1k","jmn":"Slavkov u Brna, Poln\u00ed 1334","poz":"0","sh":"0"},..atd.. Coz uz vypada spravne ale stejne hodnotu ojm, ani jinou nedostanu. |
||
pccc Profil * |
#20 · Zasláno: 15. 6. 2011, 21:34:51
Pardon, nacital jsme jste z cache, ted to funguje uz korektne.
Moc dekuji za pomoc, ulozim si to do zalozek abych priste uz vedel jak to resit. Jeste jednou diky za pomoc. |
||
Časová prodleva: 13 let
|
0