2011-03-30 58 views
0

我使用netbeans 6.9并使用xdebug来浏览我的php文件,这很棒。然而,我一直在我的项目中使用ajax/xmlhttprequest,并且我很难调试它。我做了一些研究,发现了firebug/firephp并通读了一下。我不反对学习新工具,但如果它可以集成到我目前使用的IDE中,它将会更加高效和有效。使用netbeans 6.9来调试ajax/xmlhttprequest和php

所以,提供更多的例子,假设我的index.php我有这样的:

<button onclick="getTweet()">Get Tweets!</button> 

的getTweet()函数驻留在一个.js文件

function getTweet(){ 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function(){ 
     if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
      // do something here 
     } 
    } 
    xmlhttp.open("GET", "getTweet.php?q="+$phpVars,true); 
    xmlhttp.send(); 
} 

getTweet.php去并做了Twitter搜索:

$search = "http://search.twitter.com/search.atom?q=" . $q . ""; 
$tw = curl_init(); 
curl_setopt($tw, CURLOPT_URL, $search); 
curl_setopt($tw, CURLOPT_RETURNTRANSFER, TRUE); 
$twi = curl_exec($tw); 
$search_res = new SimpleXMLElement($twi); 

现在,我是新来的Web开发,PHP,JS,AJAX,HTML,XML,JSON,NetBeans的。我在过去的3.5个月中从字面上理解了这一切,所以我是新的,需要清楚的说明。

在getTweet.php中,我可以在netbeans中插入断点但是...当我点击html按钮时从.js文件触发getTweet(),这使得xmlhttprequest,NetBeans中的调试器不会触发。能够看到变量和它的输出(XML,JSON等)帮助我极大地学习了这些东西,所以我想成为啤酒看到getTweet.php中的变量,如$ twi,$ search_res等。 ..

感谢您的意见! PS:请问firebug能为我所要达到的目标而工作吗?我正在慢慢学习,不想立刻堆积太多东西。谢谢!

回答

0

Xdebug将只捕获服务器端事件,这意味着您无法使用它来浏览您的客户端脚本。但是,Netbeans确实有能力通过JavaScript(我实际上没有尝试过,因为我使用Firebug来逐步执行脚本)。

Here's some documentation在Netbeans项目中设置脚本调试。

+0

的JavaScript的NetBeans调试已为6.9这是最新的,我根据这个论坛后使用的版本禁用:HTTP://forums.netbeans .ORG/topic28527.html – okysabeni 2011-03-31 14:55:55

1

为了得到调试器触发getTweet.php,你需要告诉Xdebug的调试器,通过发送XDEBUG_SESSION_START参数听。更新getTweet()的代码,有以下几点:

xmlhttp.open("GET", "getTweet.php?XDEBUG_SESSION_START=netbeans-xdebug&q="+$phpVars,true);