2011-03-30 39 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);