php和ajax的简单实现

巴扎黑
发布: 2016-11-24 11:04:03
原创
1239 人浏览过

步骤一、新建文件夹: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 
         

         
        
   
 
 

 
    
 
 
 

 

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板