jq应用总结(三)

(一)问题提出

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'];
    }

这样就是整个过程了





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值