Json api

Tko se razumije u JSON API, tražim malu pomoć - a meni jako bitnu.

Pokušavam se igrati s “How to make a public JSON API” čiji primjer sam uzeo jedan video klip s YouTube-a. Pogledati video da bi se znalo o čemu je riječ.

Naime, prvo testiram isti ovakav primjer pa kad skužim tj. uspijem povući podatke preko JSON APIa dalje ću s drugih stranica znati što dalje.

Napravio sam bazu s imenom “user” te u njoj redak tablicu ‘user’ na ovakav način:

Zatim imam api.php file koji izgleda ovako:

i pokreni.php file koji treba startati sve to:

Znači doslovno prepisan primjer s videa, također i skinut Firebug za Mozillu.
[color="#0000FF"]Što želim dobiti jest ovo što lik u videu dobije na 6:24 min popis polja iz tablice![/color]
(first_name, id, last_name - u mojem slučaju trebalo bi ime, prezime, id)

Ali, ja kad startam svoj pokreni.php file meni u firebugu javlja ovaj problem! Obrišem taj dio koda: (koji javlja grešku)

if(isset($_GET['method'] && !empty($_GET['method'])) {
	if(function_exists($_GET['method'])) {
		$_GET['method']();
	}
}

U Firebugu mi je sve onda tad prazno…

U oba slučaja kad u Firebugu pogledam DOM imam gomilu funkcija/objekata ali ne nikako ovakav slučaj kao što je prikazano na videu.

Cilj je izraditi mobilni web koji je doslovce gotov (dizajn i ostale funkcije) no ostalo mi je ovaj dio a prikupim podatke s jedne stranice koja nudi svoj JSON API, a na isti takav način ću prikupiti njihove podatke ako uspijem dobiti i ovo što želim u ovom primjeru.

Ako ima netko iskustva u tome da se javi i ispravi me u čemu griješim ili ako zna neko bolje rješenje ili neki link…

Unaprijed zahvaljujem.

$_GET’method’; - cemu ce ti ovo ()

(primjer koristim kao u videu)
Maknuo sam zagrade i javlja isti error:
Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ‘,’ or ‘)’ in D:\XAMPP\xampp\htdocs\www\JSON\api\api.php on line 8

A linija 8 je ova: if(isset($_GET[‘method’] && !empty($_GET[‘method’])) {

if(isset($_GET[‘method’]) && !empty($_GET[‘method’])) {
if(function_exists($_GET[‘method’])) {
$_GET[‘method’];
}
}

eto sad je sintaksa tocna…

Nisi “zatvorio” ovaj isset, zar ne? :wink:
Upravo ti to i govori greška - očekuje se ‘,’ ili ‘)’, a ti imaš

umjesto

[quote=“zerocoolos”]
eto sad je sintaksa tocna…[/quote]
Istina je! Slijepo oko… zahvaljujem, rep +

A sad kako u DOM-u da nađem onaj dio gdje mi prikaže što imam u tablici?
Jer pod Console ja nemam tako kao ima on na videu, očito je u pitanju verzija Firebuga pošto je video iz 2010 godine.

EDIT: rep + obojici

Tu gore si odabrao DOM tab i dao nam screenshot. Mislim da ćemo ti više moći pomoći ako nam daš Console tab.

Evo screenshotšto prikazuje Console tab.

U pokreni.php umjesto

bi trebalo ići

Jesam stavio sam i ono što se promijenilo je iz slike 2 u ovo.

Jel ima kakve veze što je na localhostu a ne online na serveru? Jel to igra kakvu ulogu?? Bit mi je dobiti nekako print tablica iz baze.

Hmm trebalo bi sve raditi.
Jesi provjerio ostale tabove? Ne sjećam se kada sam upalio Firebug zadnji put pa više niti ne znam gdje bi se trebalo prikazati.

Jesam čak sam odlučio sve pogledati od jednog do jednog ali nigdje ništa :frowning: neznam ni sam više od sveg kemijanja što da radim… u bazi imam par upisa čisto za probu, mislim da nebitno o njoj kakva je trebalo bi mi negdje pokazati/izlistati koje tablice imam u bazi…

Ovo ščime radiš je JSONP, ne JSON.

U nekom “normalnom” frameworku interface za rad sa JSON nebi bio isti kao i rad sa JSONP, sad pošto je jQuery u pitanju…,

index.php
[HTML]
<!doctype html>

[/HTML]

json.php

Baza podataka

-- phpMyAdmin SQL Dump
-- version 3.4.10.1
-- http://www.phpmyadmin.net
--
-- Računalo: localhost
-- Vrijeme generiranja: Ožu 17, 2012 u 10:15 AM
-- Verzija poslužitelja: 5.5.20
-- PHP verzija: 5.3.10

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Baza podataka: `test`
--

-- --------------------------------------------------------

--
-- Tablična struktura za tablicu `users`
--

DROP TABLE IF EXISTS `users`;
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `email` varchar(64) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
-- Izbacivanje podataka za tablicu `users`
--

INSERT INTO `users` (`id`, `name`, `email`) VALUES
(1, 'bla', '[email protected]'),
(2, 'blabla', '[email protected]'),
(3, 'blablabla', '[email protected]'),
(4, 'blablablabla', '[email protected]'),
(5, 'blablablablabla', '[email protected]');

[attachment=1]Capture.jpg[/attachment]

Eto probaj i vidi dal ti radi jer meni radi najnormalnije.

Primjetit ćeš da ti u url koji pozivaš preko jQuerya nema argumenta jsoncalback jer ti je on nepotreban.

@CreatifCode ti vračaš JSON dok on vraća JSONP.
Mislim da je u tome problem.

@CreatifCode - to je to rep +

Od CreatifCode kod ti je JSON, neznam jel to možeš to možeš koristiti za cross domain.

Koristiš JSON na klijent strani a treba ti JSONP, neznam kako ti ide kod jQuery.

Istina je što kažeš, želio sam prekopirati ovaj link koji imam na localhostu s drugim od neke druge domene koja nudi spajanje preko JSONP api-a ne radi…
Kako je to onda moguće izvesti?

Probaj nešto sa ovim
http://api.jquery.com/jQuery.getJSON/

Piše nešto da radi i sa JSONP.