当前位置:Gxlcms > PHP教程 > php和ajax的简单实现

php和ajax的简单实现

时间:2021-07-01 10:21:17 帮助过:14人阅读

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

人气教程排行