Maison >développement back-end >tutoriel php >php和ajax的简单实现

php和ajax的简单实现

巴扎黑
巴扎黑original
2016-11-24 11:04:031249parcourir

步骤一、新建文件夹:js,把最新的jquery.js放里边。 

步骤二、新建文件mygetjson.php,其内容为 


class custom_json {

/**
* Convert array to javascript object/array
* @param array $array the array
* @return string
*/
public static function encode($array)
{

// determine type
if(is_numeric(key($array))) {

// indexed (list)
$output = '[';
for($i = 0, $last = (sizeof($array) - 1); isset($array[$i]); ++$i) {
if(is_array($array[$i])) $output .= self::encode($array[$i]);
else $output .= self::_val($array[$i]);
if($i !== $last) $output .= ',';
}
$output .= ']';

} else {

// associative (object)
$output = '{';
$last = sizeof($array) - 1;
$i = 0;
foreach($array as $key => $value) { 
                $output .= '"'.$key.'":'; 
                if(is_array($value)) $output .= self::encode($value); 
                else  $output .= self::_val($value); 
                if($i !== $last) $output .= ','; 
                ++$i; 
            } 
            $output .= '}'; 

        } 

        // return 
        return $output; 

    } 

    /** 
     * [INTERNAL] Format value 
     * @param mixed $val the value 
     * @return string 
     */ 
    private static function _val($val) 
    { 
        if(is_string($val)) return '"'.rawurlencode($val).'"'; 
        elseif(is_int($val)) return sprintf('%d', $val); 
        elseif(is_float($val)) return sprintf('%F', $val); 
        elseif(is_bool($val)) return ($val ? 'true' : 'false'); 
        else  return 'null'; 
    } 





// prints: ** try it yourself, cannot post long lines here ** 
$big_test = array( 
    array( 
        'name' => array('John', 'Smith'), 
        'age' => 27, 
        'sex' => 0, 
        'height' => 180.53, 
        'is_human' => true, 
        'string' => 'Hello', 
    ), 
    array( 
        'name' => array('Green', 'Alien'), 
        'age' => 642, 
        'sex' => null, 
        'height' => 92.21, 
        'is_human' => false, 
        'string' => 'こんにちは!', // test utf8 here 
    ) 
); 

//echo custom_json::encode($big_test);//这个用于测试其是否返回的是json数据 
echo $_GET['jsoncallback'].'('.custom_json::encode($big_test).')';//用一个回调返回 
?> 



步骤三、新建测试页面test.html,其内容为 

 
    
        Page Title 
         

         
        
   
 
 

 
    
 
 
 

 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:php中双冒号的应用Article suivant:android取得json数据