Autor Zpráva
pccc
Profil *
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
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 *
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
pccc:
Tak sem napiš, co ti php script navrací, ať vidíme, jedná-li se o korektní json.
pccc
Profil *
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
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 *
Diky, no a muzu to nejak vyresit v ramci fce. json_encode? Nebo musim zvolit jiny postup?
__construct
Profil
pccc:
muzu to nejak vyresit v ramci fce. json_encode
napr. takto: json_encode(array($objekt1,$objekt2));
pccc
Profil *
Takze bych mel v cyklu prochazet kazdy SimpleXMLElement , na nej pouzit json_encode a vyledek opet ukladat jako pole?
__construct
Profil
pccc:
Takze bych mel v cyklu prochazet kazdy SimpleXMLElement , na nej pouzit json_encode a vyledek opet ukladat jako pole?
Nie! Skúsim ten kód [#8] napísať inak:
echo json_encode(array($SimpleXMLElement1,$SimpleXMLElement2));
Výsledkom bude potom prvý výpis s [#6]. Kapišto?
pccc
Profil *
diky, ted uz ano, mam ted tedy tvar jako v prvnim vypisu v [#6]
coz jsem zkontroloval pomoci>

alert(data);

Kdyz se ale snazim vypsat jednolive zaznamy pomoci

						   $.each(data, function(index, value){
						   	alert(value.ojm);
							});


Uz se k nim nedostanu. Nemam tedy pouzit primo fci getJson?
Witiko
Profil
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);
});
funguje zcela bez-vadně.
pccc
Profil *
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
pccc:
Hybrid, který je špatně: }][{ - navracíš opět dva separované objekty v jednom souboru, jen jsi je každý obalil do pole. Obal do pole oba a navrať je v tom poli, viz. [#8] či [#10].
pccc
Profil *
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
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 *
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
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 *
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 *
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0