JSON
Ik zou graag een JSON output willen hebben zo dat ik hem af kan handelen met javascript.
Maar het enige wat ik krijg is "Array,ArrayArray,Array".
Kan iemand mijn helpen met wat ik fout doen?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$page = "";
$query = tep_db_query("SELECT cu.user_name, cp.permission_name, cpc.id, cpc.name, cpc.description, cpc.date, cpc.published, cpc.permissions, cpc.tld FROM " . TABLE_CMS_PAGE_CATEGORYS . " AS cpc, " . TABLE_CMS_USERS . " AS cu, ".TABLE_CMS_PERMISSIONS." AS cp WHERE cu.user_id=cpc.created_by AND cu.permissions=cp.permission_level ORDER by cpc.date DESC");
while($row = tep_db_fetch_array($query)) {
$page .=array( 'id' => $row['id'], 'name' => $row['name'], 'published' => $row['published'], 'date' => $row['date'], 'user_name' => $row['user_name'], 'permission_name' => $row['permission_name'], 'tld' => $row['tld']).",".array( 'id' => $row['id'], 'name' => $row['name'], 'published' => $row['published'], 'date' => $row['date'], 'user_name' => $row['user_name'], 'permission_name' => $row['permission_name'], 'tld' => $row['tld']);
}
echo json_encode($page);
$query = tep_db_query("SELECT cu.user_name, cp.permission_name, cpc.id, cpc.name, cpc.description, cpc.date, cpc.published, cpc.permissions, cpc.tld FROM " . TABLE_CMS_PAGE_CATEGORYS . " AS cpc, " . TABLE_CMS_USERS . " AS cu, ".TABLE_CMS_PERMISSIONS." AS cp WHERE cu.user_id=cpc.created_by AND cu.permissions=cp.permission_level ORDER by cpc.date DESC");
while($row = tep_db_fetch_array($query)) {
$page .=array( 'id' => $row['id'], 'name' => $row['name'], 'published' => $row['published'], 'date' => $row['date'], 'user_name' => $row['user_name'], 'permission_name' => $row['permission_name'], 'tld' => $row['tld']).",".array( 'id' => $row['id'], 'name' => $row['name'], 'published' => $row['published'], 'date' => $row['date'], 'user_name' => $row['user_name'], 'permission_name' => $row['permission_name'], 'tld' => $row['tld']);
}
echo json_encode($page);
Wat ik graag wil is dat ik hem met een mootools JSON request kan in laden en er een layout aan kan geven.
Dus ik meen juiste JSON output zien te krijgen zo iets als dit.
{"id":"474","name":"taichi","published":"1","date":"2011-08-18 21:55:54","user_name":"admin","permission_name":"Admin","tld":"nl"},
{"id":"474","name":"taichi","published":"1","date":"2011-08-18 21:55:54","user_name":"admin","permission_name":"Admin","tld":"nl"}
Hij geeft geen geldige json output.
Normaal als dat wel zo is krijg je in firebug een tabje json er bij.
Kan iemand mijn helpen.
Mijn javascript is.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
var getDataTable = new Request.JSON({
url: this.options.dataLoadUrl,
method: 'get',
async: true,
onRequest: function() { },
onFailure: function() { alert("werkt niet"); },
onSuccess: function(response) {
var obj = JSON.decode(response);
console.log(obj);
}
}).get();
url: this.options.dataLoadUrl,
method: 'get',
async: true,
onRequest: function() { },
onFailure: function() { alert("werkt niet"); },
onSuccess: function(response) {
var obj = JSON.decode(response);
console.log(obj);
}
}).get();
mijn php is dit
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$rows = array();
$query = tep_db_query("....");
while($row = tep_db_fetch_array($query)) {
$rows[] = array('id' => $row['id'], 'name' => $row['name'], 'published' => $row['published'], 'date' => $row['date'], 'user_name' => $row['user_name'], 'permission_name' => $row['permission_name'], 'tld' => $row['tld']);
}
echo json_encode($rows);
$query = tep_db_query("....");
while($row = tep_db_fetch_array($query)) {
$rows[] = array('id' => $row['id'], 'name' => $row['name'], 'published' => $row['published'], 'date' => $row['date'], 'user_name' => $row['user_name'], 'permission_name' => $row['permission_name'], 'tld' => $row['tld']);
}
echo json_encode($rows);
Quote:
Hij geeft geen geldige json output.
Wat geeft hij wel dan
[{"id":"479","name":"yu","published":"1","date":"2011-09-05 11:58:44","user_name":"admin","permission_name":"Admin","tld":"nl"},{"id":"474","name":"taichi","published":"1","date":"2011-08-18 21:55:54","user_name":"admin","permission_name":"Admin","tld":"nl"}]
Heb je er uberhaupt al een parseJSON op geprobeerd :)? Ik net wel namelijk en mij lijkt het gewoon werkbaar
Deze array staat buiten de while daar zie je dat je bij de request een tabje json er bij krijgt.
http://ramonvanophuizen.nl/metjson.png
Bij deze zie je dat er geen tabje json bij komt en deze staat binnen de while.
http://ramonvanophuizen.nl/zonderjson.png
response.each(function(item) {
alert(item.id);
});
gebruiken....
Zie: http://mootools.net/docs/core/Request/Request.JSON
Gewijzigd op 11/09/2011 12:19:17 door Arjan -
Arjan je bent de held van vandaag! weer iets geleerd maar wat ik dan nog steeds wel raar vind waarom hij geen geldig json object is. Alles werkt nu wel en zo maar vroeg me het gewoon af.
Nu heb ik nog een vraagje.
Nu zou ik graag alleen de key's willen weten en die verzamelen.
Nu rolt hij bv twee keer de key id en twee keer de key name er uit.
Maar ik wil dat graag maar een keer hebben want met die key namen ga ik colums aan maken.
response.each(function(obj) {
for (var key in obj) {
alert(kay);
}
});