欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php和ajax的简单实现

程序员文章站 2022-04-24 11:45:09
...
步骤一、新建文件夹: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>