php和ajax的简单实现_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > php和ajax的简单实现

php和ajax的简单实现

 2011/11/21 7:55:36  adashao  http://adashao.iteye.com  我要评论(0)
  • 摘要:步骤一、新建文件夹:js,把最新的jquery.js放里边。步骤二、新建文件mygetjson.php,其内容为<?phpclasscustom_json{/***Convertarraytojavascriptobject/array*@paramarray$arraythearray*@returnstring*/publicstaticfunctionencode($array){//determinetypeif(is_numeric(key($array)))
  • 标签:PHP 实现 Ajax
步骤一、新建文件夹:js,把最新的jquery.js放里边。

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

<?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,其内容为

<html>
   <head>
        <title>Page Title</title>
        <meta charset="utf-8">

        <script type="text/javascript" src="js/jquery-1.6.3.min.js"></script>
       <script type="text/javascript">
    $(function(){
     $('#btn').click(function(){

 

     $.getJSON('json.php?jsoncallback=?',myfunction);
  function myfunction(data)
  {
   var infoHtml = '';
   $.each(data,function(contact,contactinfo)
  {
  // alert(contactinfo.name);
  
   infoHtml+='<p>name:'+contactinfo.name+'</p>';
   $('#info').html(infoHtml);
    });
  }
 
  });
    });
    
  </script>
  </head>
<body>
<input type="button" id="btn1" value="提交1">
<form id="form1" action="">
   <input type="button" id="btn" value="提交">
</form>
<div id="info"></div>
</body>

</html>
发表评论
用户名: 匿名