Hi!
I want to share with you a simple function that thakes an associative
array returned from a mysql_fetch_assoc() and outputs a json object;

usage:

in php
print "var response=".jsoner($ar);
//where $ar is somethin like that :>
array(0=>array("id"=>"3","title"=>"hello world"),
1=>array("id"=>"6","title"=>"ciao mondo")); the typical array returned
by mysql_fetch_assoc();
//it will output:

var response= {"0":{"id":"3","title":"hello world"},"1":
{"id":"6","title":"ciao mondo"};


in jQuery or normal javascript

eval(responseFromServer); //returns the "response" object;
alert(response.1.title); //will output "ciao mondo" and you can use
the form response[1].title too


Here we go:



<?php
//PHP Jsoner 0.9 by resetstudio
// mysql->php->js data exchange function
// works with php 4.0+

function jsoner($ar)
{
        $res=null;
        $ir=0;
        if(is_array($ar))
        {
                $res="{";
                foreach($ar as $aro)
                {
                        $res.="\"$ir\" : {";
                        $post_k=array_keys($aro);
                        $post_v=array_values($aro);
                        for($i=0;$i<= count($post_k)-1; $i++)
                        {
                                if(is_string($post_v[$i]))
                                {
                                        $res.="$post_k[$i] : \"$post_v[$i]\" , 
";
                                }
                                else $res.="$post_k[$i] : $post_v[$i] , ";
                        }
                        $res=substr($res,0,-2)."},";
                        $ir++;
                }
                if ($res != null)
                {
                        $res=substr($res,0,-1)."};";
                }
        }
        return $res;
}

?>

Reply via email to