(一)问题提出
1.如何在数组中找到最大,或者最小的值
2.为什么ajax传不到后台的参数
3.php如何转为json字符串
(二)问题解决
1.可以使用js的内置函数
var a=[1,2,3,4];
alert(Math.max.apply(null, a));//最大值
alert(Math.min.apply(null, a));//最小值
2.因为字符串的问题 ,应该使用字符串拼接
var url='index.php/MoreIntensityCon/Intensity/'+params;
这样才是正确的
var url='index.php/MoreIntensityCon/Intensity/params';
这样是错误的
因为引号是不会将你所传达参数的表示插入进去,而是讲params穿进去这是问题所在,小小一个加号就可以让你改一个小时了
3.使用json_encode()函数
在这里顺便说一个小技巧
php 要是想让前台ajax接收到的值是组数据,那么就在控制层使用echo
在前台ajax接收到数据之后使用eval("("+data+")");就可以将json字符串转换为数组了
下面我展示一个实列
前台代码:
$(function(){
$("#showintensityId").click(function(){
var params = document.getElementById("intensityselect").value;//得到input和textarea中的值,本人就在这里出现错误
var url='index.php/MoreIntensityCon/Intensity/'+params;//需要执行的后台文件
$.ajax({
type:"POST", //方法
url: url, //文件路径
dataType:"text",//用的是什么字符,json字符在js中相当有优势
//data:"IntensityValue=" + params,//要传送的数据
async: false,//是否同步或者异步
success:function(data){//查错
var Buildperproperty = eval("("+data+")");
//var BuildLat = Buildperproperty.data[1].BuildLat;
addBuildMarker(Buildperproperty);
},
error: function (data) {
//alert(msg);
//document.write(msg);
alert("ajax有错!");
}
});
});
});
后台代码:
public function Intensity($IntensityValue){
$data['IntensityData']=$this->MoreIntensity_Model->getIntensity($IntensityValue);
//$this->load->view('moreintensitymap',$data);
echo json_encode($data['IntensityData']);
//var_dump($data['IntensityData']);
//return $data['IntensityData'];
}
这样就是整个过程了