Posts Tagged ‘json’

jQuery的jQuery.post()的第四个参数需要指定返回的数据类型

December 18th, 2008

jQuery.post( url, [data], [callback], [type] )
正如标题所说,如果返回的是json格式的话,务必要指定type=‘json’

否则在callback的函数中还按照json格式来调用数据的话,极有可能会为undefined

例如:

function delete_all()
{
	if (!confirm('确定删除?'))
	{
		return false;
	}

	var mid = [];

	$("input:checked").each(function(){
		mid.push($(this).val());
	});

	var sendurl = 'batch.guestbook.php?action=delete';

	$.post(sendurl, {'mid[]':mid}, function(json){
		if (json.info != 'ok') {
                      alert(json.info);
                      return;
		}

	   $("input:checked").each(function(){
			$(this).parent().parent().hide('slow', function(){
			   $(this).remove();
		   });
		});
	});

	return false;
}

是的,上面这段代码无论post返回是的什么(即使是{”info”:”ok”}),都会提示undefined

原因就在于没有指定type返回数据的类型,没有指定的话会自动根据类型被认为HTML或XML(?)

嘛,某API中文手册少了第4个参数急需修正哇,以后还是多看看官网的document好了

附:正确的参数设置:

$.post(sendurl, {'mid[]':mid}, function(json){
		if (json.info != 'ok') {
                      alert(json.info);
                       return;
		}

	   $("input:checked").each(function(){
			$(this).parent().parent().hide('slow', function(){
			   $(this).remove();
		   });
		});
	}, 'json');

PS:刚在官方的callback中看到个例子

$.postJSON = function(url, data, callback) {
	$.post(url, data, callback, "json");
};

既然$.getJSON都集成进去了,为什么$.postJSON不集成进去呢。。。
还是说已经集成了只是document里没有列出来而已。。。。

  • Share/Save/Bookmark

Dips1:JS中获得PHP json_encode后的数据处理

August 22nd, 2008

一个通过AJAX来实现二级联动的东西,PHP获取数组以json的形式返回给JS
这里有个小地方需要注意,PHP中json_encode函数return的结果是string的形式
所以传到JS后还需要通过eval()函数来以JS代码形式执行这段string

PS:与JS交互还是JSON比XML方便吖XD

function setbaby(classid,babyid){
	var class_id = document.getElementById(classid).value;
	var x = new Ajax('statusid', 'HTML');
	x.get('batch.common.php?action=getbaby&classid='+class_id, function(s){
		var babyOptions = new Array();
		var babyOptions = eval(s);
		var babyObject = document.getElementById(babyid);
		babyObject.options.length = 0;
		babyObject.options[0] = new Option("选择宝宝","");
		var j=0;
		for(var i=0;i
  • Share/Save/Bookmark