Afsluiten zonder comma
while ($obj = mysql_fetch_object($res)) {
echo "{\"id\":\"$obj->id\",\"client\":\"$obj->comment\",\"desc\":\"\"},";
echo "\n";
}
mysql_free_result($res);
resultaat dat ik dan krijg ziet er als dit uit:
{"id":"19","client":"I Love 90","desc":""},
{"id":"20","client":"F en B show","desc":""},
{"id":"21","client":"Kluswijzer","desc":""},
{"id":"22","client":"NRG-Events","desc":""},
{"id":"23","client":"NRG-Events","desc":""},
{"id":"24","client":"Chiquita","desc":""},
Nu moet alleen bij de laatste regel geen comma worden weergegeven.
dus dit:
{"id":"19","client":"I Love 90","desc":""},
{"id":"20","client":"F en B show","desc":""},
{"id":"21","client":"Kluswijzer","desc":""},
{"id":"22","client":"NRG-Events","desc":""},
{"id":"23","client":"NRG-Events","desc":""},
{"id":"24","client":"Chiquita","desc":""}
Hoe los ik dit op?
Gewijzigd op 28/12/2011 21:23:48 door Lyrix Lyrix
Wat voor output is dit? Json?
jquery
Gewijzigd op 28/12/2011 21:28:49 door - Ariën -
<php?
$text = '';
while ($obj = mysql_fetch_object($res))
{
$text .= ($text == '') ? '{"id":"' . $obj->id . '","client":"' . $obj->comment","desc":""}': ', {"id":"' . $obj->id . '","client":"' . $obj->comment","desc":""}';
}
echo $text;
?>
Gewijzigd op 28/12/2011 21:39:45 door - Ariën -
Bedankt voor je reactie.
Er zit denk ik een foutje in, ik krijg deze melding.
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Waarom geen json_encode gebruiken?
Nogmaals, als het om json gaat.waarom genereer je de opmaak zelf? Lijkt me erg omslachtig...............
Ja ik had het niet getest maar je snapt de bedoeling wel denk ik
Gewijzigd op 28/12/2011 23:17:39 door - Ariën -
Lyrix, lees even de posts van Aar, die geeft je namelijk verreweg het makkelijkste antwoord.....
Jouw code werkt wel maar ik krijg nu deze output.
if(!window.slider) var slider={};slider.data=[
{"id": "19", "client":"I Love 90", "desc":""}
{"id": "20", "client":"F en B show", "desc":""}
{"id": "21", "client":"Kluswijzer", "desc":""}
{"id": "22", "client":"NRG-Events", "desc":""}
{"id": "23", "client":"NRG-Events", "desc":""}
{"id": "24", "client":"Chiquita", "desc":""}
];
Nog niet helemaal goed. :)
Gewijzigd op 28/12/2011 23:42:43 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$text = '';
while ($obj = mysql_fetch_object($res))
{
$text .= ($text == '') ? '{"id":"' . $obj->id . '","client":"' . $obj->comment .'","desc":""}' : ', {"id":"' . $obj->id . '","client":"' . $obj->comment . '","desc":""}';
}
echo $text;
?>
$text = '';
while ($obj = mysql_fetch_object($res))
{
$text .= ($text == '') ? '{"id":"' . $obj->id . '","client":"' . $obj->comment .'","desc":""}' : ', {"id":"' . $obj->id . '","client":"' . $obj->comment . '","desc":""}';
}
echo $text;
?>
@Aar, sommige mensen willen gewoon moeilijk doen waar het makkelijk kan....
Dan doen ze dat maar lekker, maar dan moeten ze niet bij mij gaan janken als de JSON-string opeens behoorlijk corrupt raakt.
- Aar - op 28/12/2011 23:17:25:
*me gaat op het negeer bankje zitten.
Dat zit in dit topic best lekker volgens mij.
Hoef je lekker niks meer te doen. ;-)
Klopt zo werkt het goed. TNX!
@AAr ik hobby een beetje php en json_encode zegt mij niets.
Ik snap dat er meer wegen naar romen zijn en er misschien betere oplossingen zijn.
De oplossing die stef heeft aangedragen werkt.
Bij deze een hint: http://php.net/json_encode .
Jij wilt vermoedelijk gewoon een JSON-string genereren voor een JSON-fucntie in JavaScript. En met deze functie kan je er een array in gooien, en je krijgt er een json-string uit.
Ik zou zeggen, kijk er eens naar. En ik durf te wedden dat je denkt: 'Dit is het ei van Columbus!'.
Lyrix Lyrix op 29/12/2011 09:39:25:
De oplossing die stef heeft aangedragen werkt.
Totdat om een vage reden je string corrupt kan raken. Zou misschien zelfs al met een accolade of weet ik veel wat kunnen gebeuren. Json_encode beschermt je tegen corruptie...
Gewijzigd op 29/12/2011 10:11:39 door - Ariën -