六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 32|回复: 0

prototype的ajax调试一例

[复制链接]

升级  16.67%

70

主题

70

主题

70

主题

举人

Rank: 3Rank: 3

积分
250
 楼主| 发表于 2013-1-23 02:49:16 | 显示全部楼层 |阅读模式
几天前程序还好好的,突然执行错误。
      var id = 1;      var URL = '/index/ajaxfetcharea';            new Ajax.Request(URL, {        method: 'get',        evalJSON:true,        evalJS:true,        parameters:{province: id},        onSuccess: function(transport, json) {          var result = transport.responseJSON;           var str ='';                    //调试语句          //alert(transport.responseText);          for(var i=0, j=result.length; i<j; i++) {            str += ' <a target="_blank" href="http://'+  result[i].a + '.site.com' +'/">'+ result[i].b +'</a>';          }          $('id_allarea_li').update(str);                   }      }

这时,把调试语句注释取消,发现输出是
<br />notice:。。。。。<br />[{a:1,b:2}, {a:2,b:3}。。。]

原来,php遇到解析错误但不是致命错误,如果也不关闭php.ini里的错误输出,则php会强行在输出流的最开头处插入错误提示的html代码,而服务端代码并没有致命错误,前几天修改代码时增加了一些功能,说起来,也是没有单元测试的原因啊。

也是一个php常见警告
$a = array();if ($a['b']) {  .....}

这样就会警告了,正确的写法是
$a = array();if (array_key_exists('b', $a)) {  .....}
就不会警告了。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表